Programowanie C++ Qt4 w systemie Gnu-Linux/Wskaźnik '''this'''

Jest to wskaźnik związany z obiektową architekturą języka C++. Trzeba wyjaśnić co to za ustrojstwo przed zabraniem się do dalszych rozważań. Na początek przykład:

#include <iostream>
using namespace std;


class Schowek {
  int a,b;
public:
  void wczytaj(int liczba) {
              this->a=liczba;
              b=liczba;
             }
  void wypisz() {cout<<"liczba a="<<a<<"      "<<"liczba b="<<this->b<<endl;}
};

int main()
{
  Schowek ObiektA, ObiektB;
  ObiektA.wczytaj(11); //Tutaj "this" wewnątrz funkcji wczytaj() będzie oznaczał wskaźnik do zmiennej ObiektA
  ObiektA.wypisz();    //Tutaj tak samo 
  ObiektB.wczytaj(20); //A Tutaj  "this" wewnątrz funkcji wczytaj() będzie oznaczał wskaźnik do zmiennej ObiektB
  return 0;
}


  • This wewnątrz metody danej klasy jest wskaźnikiem na obiekt tej klasy. Wskaźnikiem na obiekt, dla którego pracuje funkcja. Oczywiście w przykładzie przedstawionym powyżej nie ma konieczności odwoływania się do zmiennej "a" za pomocą wskaźnika "this". Kompilator i tak to zrobi). Jednak warto sobie zdawać sprawę jak to się dzieje. Wskaźnik ten będzie dość szeroko wykorzystywany w dalszej części. Pierwsze zastosowanie już w rozdziale poniżej.


Uwaga!!! Funkcja zwracająca this zwraca wskaźnik do obiektu na rzecz którego pracuje. Patrz przykład w rozdziale o referencjach C++


Gdzie nie ma "this" - dla ciekawskich edytuj

  • Składowe klasy typu static. Ponieważ te składowe występują globalnie i jednokrotnie. Nie da się do nich odwołać przy pomocy wskaźnika "this", ponieważ są samodzielnym bytem. Niezależnie od tego ile obiektów danej klasy jest tworzonych, składowa static jest jedna. Przypomnę, że"this" jest właśnie wskaźnikiem na konkretny obiekt.