Haker123 Temat założony przez niniejszego użytkownika |
Nie zrozumiane metody/funkcje z kursu. (książka telefoniczna) » 2009-08-03 21:54:57 Witam. Po dlugiej przerwie znowu mam czas na programowanie ale natrafilem na problem, mianowicie chce zrobic wlasna baze danych i wzoruje sie naksiazce telefonicznej z http://forum.ddt.pl/?Tid=26 . I natrafilem na problem nie wiem co robia znaczniki reinterpret_cast , sizeof (jak dobrze mysle to znacznik robi cos z dlugoscia jaka ma wprowadzic) , const_cast , napis.c_str() , plik.gcount() , napis.resize Wiem ze troszke tego duzo ale jak jade do pracu to pisze sobie ta baze danych i teraz natrafilem na cos czego nie rozumiem. Szukalem w necie ale jest to wyjasnione tak ze ja nic nie rozumiem ;/ bede wdzieczny jak ktos to mi wyjasni jak 6 latkowi ;] POZDRO ;] |
|
DeBugger |
» 2009-08-03 22:02:33 Ehh... To nie są znaczniki, to funkcje i słowa kluczowe: reinterpret_cast - jedno z rzutowań; sizeof - "wydala" wielkość danego typu jako int (w bajtach); const_cast - najprostsze rzutowanie; .c_str() - "wydala" stringa w postaci const char* (takie rzutowanie) - dotyczy stringów; .gcount() - "wydala" ilość bajtów które zostały faktycznie wczytane do bufora fstream (i innych jak ofstream); .resize() - zmienia długość stringa (chyba można zastosować w vectorze bodajże).
//edit: Teraz JCJ to DeBugger. :P
//edit2: Metodę resize() można zastosować w jeszcze innych typach. |
|
lynx |
» 2009-08-03 22:21:38 Reinterpret_cast - rzutuje wskażniki (podstawia wskaźnikowi adresu obiektu do innego typu niż został on stworzony). Na kodzie: class ziutek; class bobek; ziutek * wsk_ziutek; bobek * wsk_bobek;
wsk_ziutek reinterpret_cast < ziutek *>( wsk_bobek );
sizeof() - zwraca wielkość danego obiektu podaną w bajtach const_cast - jeżeli mamy zmienną przechowującą adres stałego obiektu, nie możemy tak po prostu sobie przypisać gdzie indziej tego adresu. A operator ten pozwala nam właśnie na jego uzyskanie. Dzięki nie mu możemy pozbyć się (nadać) przydomka const, bądź również volatile. c_str() - (string) zwróci nam to const char* z obiektu string. (napis to zmienna string) gcount() - zwraca ostatnio ilość pobranych niesformatowanych znaków z wejścia resize() - (string) zmienia długość string'a do podanej ilości (liczby) znaków; |
|
DeBugger |
» 2009-08-04 12:45:39 Moim zdaniem wszystko wytłumaczone. Jeżeli autor tematu chciałby coś dodać, proszę o otworzenie tematu. |
|
Haker123 Temat założony przez niniejszego użytkownika |
» 2009-08-05 19:38:09 Ma takie jeszcze jedno pytanko
Fanael skoro mowisz ze ta ksiazka telefoniczna jest zle napisana to bede wdzieczny jak bys napisal jak ma wygladac zapisywanie/wczytywanie do/z pliku bo tylko to mi zostalo do skonczenia i bede mial swoja 1 baze danych ;]
a 2 pytankoto co to jest ten "kurs ethourisa" bo wpisalem to w gogle i nic nie wyskoczylo ;/ a moze sie okazac ze mi sie przyda to kiedys ;] |
|
DeBugger |
» 2009-08-05 19:59:09 Hmm... Jedno pytanie - jeden temat. A kod jest dobry, tylko Fanael jeszcze bardziej by go skomplikował. Zamykam więc ponownie - napisz nowy temat, jeżeli coś mamy pomóc. |
|
manfred |
» 2009-08-03 22:05:36 Nie czytaj najlepiej tamtego kodu - jest strasznie zły - kto to widział, żeby w taki sposób pisać do stringa - nikt nie gwarantuje, że string jest ciągły, w końcu po to c_str() zwraca cholerne const, by się nikt nigdy tego łamać nie odważył... Innymi słowy - nie musisz wiedzieć co to robi, bo nawet nie działa (działać to może działa pod jakąś tam implementacją stdliba, ale nie pod innymi - pod fnstd dzieją się rzeczy straszne).
A teraz może odpowiedź na pytanie: reinterpret_cast - rzutuje wskaźnik <-> liczba całkowita, referencja <-> referencja i wskaźnik <-> wskaźnik, przy czym typy muszą mieć tą samą wariancję const_cast - rzutuje referencja <-> referencja i wskaźnik <-> wskaźnik, przy czym jedyne czym mogą się różnić typ źródłowy i docelowy to wariancja sizeof - zwraca rozmiar wyrażenia lub typu w wielokrotnościach rozmiaru chara Opis metod masz na cplusplus.com...
//JCJ, wróć, DeBugger mówi: Nie tak ostro Fanael, trochę nie za dużo wiedzy jak na 6-latka?? :D Taki jołk. |
|
manfred |
» 2009-08-03 22:11:46 @up: A tam za dużo - kurs ethourisa i będzie wiedział tyle, co ja... |
|
« 1 » 2 |