next up previous contents
Elõre: Konstruktorok és destruktorok Fel: Függvénymezõk definiálása Vissza: Függvénymezõk aktivizálása

A this nevû, implicit mutató

Egy függvénymezõben direkt módon is hivatkozhatunk arra az objektumra, amelyiknek a függvénymezejét aktivizáltuk. Például a

            class cc {
                       int m;
                       public:
                       ....
                       int read_m(void) { return m; }
                     };
deklaráció esetén, ha aa és bb cc típusúak, akkor az aa.read_m( ), illetve a bb.read_m( ) függvényhívások esetén rendre az aa.m, illetve bb.m értékeket kapjuk. A függvényhívás során úgy derül ki, hogy melyik objektum adatmezõit kell használni, hogy minden függvénymezõ számára implicit módon deklarálásra kerül egy this nevû pointer. Ha tehát a read_m függvény egy cc típusú osztály függvénymezõje, akkor a read_m-en belül this egy cc* típusú pointer, ilyen módon az elsõ read_m hivatkozásnál this az aa változóra, míg a második hivatkozás alkalmával a bb-re mutat, azaz az elsõ esetben this == &aa, a második esetben pedig this == &bb.

A this mutató explicit módon is megjelenhet a függvénymezõk definíciója során:

            class cc {
                       int m;
                       public:
                       int read_m(void) { return this->m; }
                     };