[C++] Wskaźnik 'this'
Ostatnio zmodyfikowano 2010-06-10 23:01
madmike44 |
» 2010-06-09 08:48:11 |
|
lemis.aryl |
» 2010-06-10 23:01:47 Mam klasę, np.: class person { char nazwisko[ 80 ]; int wiek; public: void save( char * napis, int lata ); };
void person::save( char * napis, int lata ) { strcpy( nazwisko, napis ); wiek = lata; } I teraz tworzę sobie kilka egzemplarzy obiektów tej klasy: person ktos, ktos_inny;
Mam więc teraz dwie tablice na nazwisko i dwie zmienne typu int dla wieku, a funkcje składowe występują w pamięci tylko raz. Dzięki wskaźnikowi this funkcja wie do którego obiektu ma przesłać wartość. Operacje przeprowadzane są na składnikach konkretnego egzemplarza obiektu, dla którego tę funkcję wywołaliśmy. W rzeczywistości funkcja składowa wygląda tak: void person::save( char * napis, int lata ) { strcpy( this->nazwisko, napis ); this->wiek = lata; } Wskaźnik this moglibyśmy wstawić sami, ale kompilator robi to za nas oszczędzając nam pisania. |
|
1 « 2 » |