Programowanie obiektowe, C++
Wskaźnik this
[lekcja] 5. Lekcja opisuje wskaźnik this.Wskaźnik this
W niestatycznych metodach klasy występuje
wskaźnik this, który wskazuje na obiekt, dla którego została wywołana metoda. Oznacza się go słowem kluczowym
this
.
#include <iostream>
class Klasa
{
public:
void metoda()
{
std::cout << "Moj adres to " << this << std::endl;
}
};
Moj adres to 0xbfe59b3f
Wskaźnika
this nie można modyfikować. Nie można też ręcznie usuwać wskazywanego przez niego obiektu, chyba, że ma się ku temu bardzo dobre powody. W niemal stu procentach przypadków, użycie
delete na
this jest poważnym błędem, bo nie można z tego miejsca określić, czy obiekt został utworzony na stosie, a nawet jeśli był zaalokowany dynamicznie, to obiekt może leżeć gdzieś w środku tablicy.
Przykłady
class JakasKlasa
{
int x;
public:
void m( int x )
{
this->x = x;
}
};
#include <iostream>
class Klasa
{
public:
void m( Klasa & x )
{
if( this == & x )
std::cout << "Uzyto tego samego obiektu" << std::endl;
else
std::cout << "Uzyto innego obiektu" << std::endl;
}
};
int main()
{
Klasa a, b;
a.m( b );
b.m( b );
}
Uzyto innego obiektu
Uzyto tego samego obiektu
Wszystkie teksty są chronione prawami autorskimi. Kopiowanie lub rozpowszechnianie treści poza niniejszym serwisem
jest zabronione.
Powyższe ograniczenie nie dotyczy autora opracowania, któremu przysługuje prawo do rozpowszechniania własnego tekstu wedle własnego uznania.