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

[C++] Wskaźnik 'this'

Ostatnio zmodyfikowano 2010-06-10 23:01
Autor Wiadomość
madmike44
» 2010-06-09 08:48:11
P-17796
lemis.aryl
» 2010-06-10 23:01:47
Mam klasę, np.:
C/C++
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:

C/C++
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.
P-17882
1 « 2 »
Poprzednia strona Strona 2 z 2