[C++] wskaźnik this na liście inicjalizacyjnej w konstruktorze
Ostatnio zmodyfikowano 2013-11-02 16:14
Pawel9218 Temat założony przez niniejszego użytkownika |
[C++] wskaźnik this na liście inicjalizacyjnej w konstruktorze » 2013-11-02 13:42:50 class Punkt { int x, y, z; public: Punkt() : x( 0 ) , y( 0 ) , z( 0 ) { } Punkt( int x, int y, int z ) : this->x( x ) , this->y( y ) , this->z( z ) { } };
Dlaczego nie mogę użyć wskaźnika this robiąc konstruktor ? Chciałbym działać na tych samych zmiennych i nie wiem czemu taki zapis jest nieprzyjęty przez kompilator ;/ |
|
Rafi |
» 2013-11-02 14:37:16 Wskaźnika this używasz na istniejących obiektach, a przy konstruktorze jeszcze on nie istnieje. Pewnie miałeś na myśli listę inicjalizacyjną. Usuń wskaźniki this i powinno działać. |
|
Elaine |
» 2013-11-02 14:57:11 Na liście inicjalizacyjnej powinny się znajdować same nazwy zmiennych, bez this->. Punkt( int x, int y, int z ) : x( x ) , y( y ) , z( z ) { } |
|
Pawel9218 Temat założony przez niniejszego użytkownika |
» 2013-11-02 15:02:46 Ok ,rozumiem ,ale one nie będą się wzajemnie zasłaniać? |
|
Elaine |
» 2013-11-02 15:41:35 Nie. Na liście inicjalizacyjnej są to jednoznacznie zmienne składowe klasy, wewnątrz nawiasów – parametry. |
|
Pawel9218 Temat założony przez niniejszego użytkownika |
» 2013-11-02 15:59:52 Ok ,jeszcze ostatnia wątpliwość , takie coś za to działa : Punkt(int x,int y,int z){this->x=x;this->y=y;this->z=z;} |
|
den93 |
» 2013-11-02 16:14:02 No tak w ciele metody klasy (pomiędzy {}) można tak zrobić ale na liście inicjalizacyjnej konstruktora - nie. |
|
« 1 » |