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

[C++] Czym się różni zapis obiekt->metoda() od zapisu obiekt.metoda()

Ostatnio zmodyfikowano 2013-10-27 15:20
Autor Wiadomość
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ą:

C/C++
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:
C/C++
ZM.Najechanie.setPosition( Przycisk.getPosition().x, Przycisk.getPosition().y );
Dodam że wszystkie zmienne i klasy są na
new
P-94665
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.
C/C++
JakasKlasa * foo = new JakasKlasa;
foo->bar();

.
 używasz w przeciwnym przypadku:
C/C++
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:
C/C++
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:
C/C++
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ł...
P-94666
Alan468
Temat założony przez niniejszego użytkownika
» 2013-10-27 15:20:29
dzięki
:)
P-94667
« 1 »
  Strona 1 z 1