Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Autor: pekfos
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
.
C/C++
#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

C/C++
class JakasKlasa
{
    int x;
   
public:
    void m( int x )
    {
        this->x = x;
        //Do x z klasy przypisujemy argument x
    }
};
C/C++
#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
Poprzedni dokument Następny dokument
Konstruktory i destruktory Metody stałe