Contenu du cours
C++ Oop
C++ Oop
Le Mot-clé This
Le mot-clé this
revêt une signification particulière dans le contexte de la programmation orientée objet (POO). Il se réfère à l'instance d'objet actuelle. Comprendre comment cela fonctionne est crucial pour gérer efficacement l'état de l'objet et accéder aux variables membres et aux fonctions.
Comprendre le mot-clé this
Lorsqu'une fonction membre est invoquée, elle reçoit implicitement un pointeur vers l'objet qui l'a invoquée. Ce pointeur est accessible via le mot-clé this
. Le mot-clé this
permet aux fonctions membres d'accéder aux variables membres et aux fonctions membres de l'objet actuel.
Example
#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; }
Lorsque vous utilisez l'opérateur point (.
) pour accéder aux variables membres ou aux fonctions membres au sein d'une classe, le pointeur this
pointe implicitement vers l'objet pour lequel la fonction membre est appelée. Cela est souvent précieux dans divers scénarios et couramment utilisé pour éviter l'ambiguïté dans les noms de variables.
Example
#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; }
Remarque
La valeur de l'attribut n'a pas changé car le programme ne différencie pas à quel nombre nous faisons référence, car ils partagent les mêmes noms.
Ici, nous pouvons utiliser le mot-clé this
car il pointe vers l' objet actuel en tant que pointeur. Pour accéder à ses attributs, nous devons utiliser l'opérateur ->
.
main
#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; }
L'utilisation du mot-clé this
est une pratique répandue dans divers scénarios. Il est souvent employé, en particulier dans les grandes classes, pour signifier qu'une variable est un membre des classes et non un paramètre ou un argument externe.
Merci pour vos commentaires !