Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Nie zrozumiane metody/funkcje z kursu. (książka telefoniczna)

Ostatnio zmodyfikowano 2009-08-05 19:54
Autor Wiadomość
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 ;]
P-8989
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.
P-8990
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:
C/C++
class ziutek;
class bobek;
ziutek * wsk_ziutek;
bobek * wsk_bobek;
//wsk_ziutek = wsk_bobek; // nie przejdzie
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;
P-8992
DeBugger
» 2009-08-04 12:45:39
Moim zdaniem wszystko wytłumaczone. Jeżeli autor tematu chciałby coś dodać, proszę o otworzenie tematu.
P-9012
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 ;]
P-9081
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.
P-9082
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.
P-19130
manfred
» 2009-08-03 22:11:46
@up: A tam za dużo - kurs ethourisa i będzie wiedział tyle, co ja...
P-19131
« 1 » 2
  Strona 1 z 2 Następna strona