[C++] Czym się różni zapis obiekt->metoda() od zapisu obiekt.metoda()
Ostatnio zmodyfikowano 2013-10-27 15:20
Alan468 Temat założony przez niniejszego użytkownika |
[C++] Czym się różni zapis obiekt->metoda() od zapisu obiekt.metoda() » 2013-10-27 15:05:56 Jaka jest różnica między znakiem '->' a kropką: Sprite * Najechanie; Texture * Tekstura; Tekstura = new Texture[ 14 ]; Najechanie = new Sprite; Tekstura[ 8 ].loadFromFile( "Data/najechanie.bmp" );
ZM.Najechanie->setPosition( Przycisk.getPosition().x, Przycisk.getPosition().y );
dlaczego ten fragment nie działa tak: ZM.Najechanie.setPosition( Przycisk.getPosition().x, Przycisk.getPosition().y );
Dodam że wszystkie zmienne i klasy są na new |
|
m4tx |
» 2013-10-27 15:15:14 -> używasz wtedy, gdy masz wskaźnik na jakiś element - czyli, prościej mówiąc, prawie zawsze wtedy, gdy używasz new do utworzenia zmiennej. JakasKlasa * foo = new JakasKlasa; foo->bar(); . używasz w przeciwnym przypadku: JakasKlasa foo; foo.bar(); I teraz jeszcze 2 kwestie. Pierwsza to taka, że za pomocą operatora gwiazdki, mając wskaźnik, można używać kropki: JakasKlasa * foo = new JakasKlasa; JakasKlasa foo2 = * foo; foo2.bar(); Gdy odwołujesz się do konkretnego elementu tablicy (jednowymiarowej), to to już nie jest wskaźnik: JakasKlasa * foo = new JakasKlasa[ 15 ]; JakasKlasa foo2 = foo[ 10 ]; foo2.bar(); I jeszcze jedno. Do referencji odwołujesz się za pomocą kropki. Ot, tyle. Jeszcze drobna informacja: to co wyżej w sumie i tak byś znalazł gdybyś chwilkę poszukał... |
|
Alan468 Temat założony przez niniejszego użytkownika |
» 2013-10-27 15:20:29 dzięki :) |
|
« 1 » |