Kurssisisältö
C++ OOP
C++ OOP
This-Avainsana
Avainsana this
oliopohjaisessa ohjelmoinnissa viittaa nykyiseen olio-instanssiin. Se tarjoaa jäsenfunktioille osoittimen olioon, joka kutsui niitä, mahdollistaen kyseisen olion muuttujien ja funktioiden käytön.
Example.cpp
#include <iostream> class Example { public: Example* get_address() { return this; } }; int main() { Example obj; std::cout << &obj << std::endl; std::cout << obj.get_address() << std::endl; }
Kun käytät pisteoperaattoria (.
) jäsenmuuttujien tai -funktioiden käyttämiseen luokan sisällä, this
-osoitin viittaa implisiittisesti siihen olioon, jolle jäsenfunktiota kutsutaan. Tämä on usein hyödyllistä erilaisissa tilanteissa ja sitä käytetään yleisesti muuttujien nimien epäselvyyksien välttämiseksi.
Example.cpp
#include <iostream> class Example { public: void multiply(int number) { number *= number; } int number; }; int main() { Example obj; obj.number = 2; obj.multiply(5); std::cout << obj.number; }
Tässä voimme hyödyntää this
-avainsanaa, koska se osoittaa nykyiseen olioon osoittimena. Sen attribuutteihin pääsemiseksi on käytettävä ->
-operaattoria.
main.cpp
#include <iostream> class Example { public: void multiply(int number) { this->number *= number; } int number; }; int main() { Example obj; obj.number = 2; obj.multiply(5); std::cout << obj.number; }
this
-avainsanan käyttö on laajalle levinnyt käytäntö useissa eri tilanteissa. Sitä käytetään usein erityisesti suurissa luokissa osoittamaan, että muuttuja on luokan jäsen eikä ulkoinen parametri tai argumentti.
Kiitos palautteestasi!