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

Wskaźniki na klasy.

Ostatnio zmodyfikowano 2017-02-28 19:33
Autor Wiadomość
Marik1234
Temat założony przez niniejszego użytkownika
Wskaźniki na klasy.
» 2017-02-28 19:11:58
Witam, od niedawna zacząłem naukę c++ i zastanawiam się nad pewną sprawą, czy te dwa kody źródłowe różnią się czymś innym niż zapisem?
C/C++
void Player::draw( RenderWindow * win ) // przykładowa metoda
{
    win->draw( sprite );
}


player.draw( & window ); // wywołanie przykładowej metody

C/C++
void Player::draw( RenderWindow & win )
{
    win.draw( sprite );
}


player.draw( window );

Wydaje mi się, że one różnią się tylko zapisem, bo w obu przypadkach pracują na oryginalnych klasach, ale nie jestem do końca pewny.
P-158370
Bielan
» 2017-02-28 19:28:29
Różnice wynikają z różnić między referencją w wskaźnikiem. Między innymi:
  • w pierwszym przypadku zawsze może przyjść null, przez co wywołanie funkcji się nie uda.
  • w pierwszym przypadku mamy niejasność co do własności wskaźnika (w C++11 i C++14 weszły inteligentne wskaźniki, które pomagają to ustalić). W pierwszej funkcji ktoś może wywołać na wskaźniku [cpp]delete[/cpp].
P-158374
Marik1234
Temat założony przez niniejszego użytkownika
» 2017-02-28 19:33:10
Dzięki, postaram się więcej poczytać o różnicach między referencją a wskaźnikiem. Nie wiedziałem po prostu czego się złapać.
P-158379
« 1 »
  Strona 1 z 1