[Allegro5] Klasa i wskaźniki
Ostatnio zmodyfikowano 2010-02-09 23:56
steckel Temat założony przez niniejszego użytkownika |
» 2010-02-09 22:28:23 Ta struktura wygląda tak: struct ALLEGRO_FONT { void * data; int height; ALLEGRO_FONT_VTABLE * vtable; };
Taki konstruktor kopiujący nie zadziałał: Czcionka( const Czcionka & czcionka ) { font->data = czcionka.font->data; font->height = czcionka.font->height; font->vtable = czcionka.font->vtable; kolor = czcionka.kolor; }
Gdy próbowałem skopiować samo 'height', żeby nie bawić się we wskaźniki tej struktury, to też niestety nie zadziałało. |
|
malan |
» 2010-02-09 23:54:05 Przed stworzeniem obiektu tej klasy masz gdzieś alfont_init ? |
|
DejaVu |
» 2010-02-09 23:56:48 Cóż wyjaśnię Ci Twój błąd tak łopatologicznie na innym przykładzie: int * a = new int; int * b = a; delete a; delete b;
Ty robisz błąd w miejscu: , ponieważ alokujesz dane jakąś nieznaną Ci funkcją (tj. nie wiesz co ona robi) i masz do zmiennej cały interfejs do obsługi, więc musisz użyć interfejsu dostępnego w allegro, aby zrobić drugą kopię tego obiektu. Przykład powyższy zadziała więc gdy: int * b = new int( * a );
W przypadku gdy używasz czegoś czego nie znasz to musiałbyś zrobić tak: COSTAM * b = FunkcjaKopiujaca( a ); gdzie funkcja kopiująca musi być udostępniona przez interfejs lub musisz znać dokładnie działanie funkcji tworzącej font'a, by móc prawidłowo napisać sobie funkcję kopiującą. |
|
1 2 « 3 » |