This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
in204:cpp:syntax:class:this [2019/10/10 09:45] bmonsuez |
— (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Le pointeur this ====== | ||
- | |||
- | Dans une fonction membre, le mot clé ''this'' désigne le pointeur faisant référence à l'instance de l'objet qui est à l'origine de l'appel de la méthode. | ||
- | |||
- | Disposer de la référence sur l'objet dans la méthode est principalement pour les usages suivant : | ||
- | |||
- | * lever l'ambiguité sur un conflit entre des noms de fonctions ou de champs, notamment quand il y a une fonction ou un champ qui est défini plusieurs fois dans des contextes différents, cela permet de préciser que l'on souhaite accéder au champ ou à la méthode défini dans la classe en préfixant le nom du membre ou de la méthode par ''this->''.\\ <code cpp> | ||
- | bool Value::is_equal(const A& anotherValue) const | ||
- | { | ||
- | return this->m_value== anotherObject.m_value; | ||
- | } | ||
- | </code> | ||
- | |||
- | * permettre à la fonction de retourner une référence à l'objet, soit sous la forme d'un pointeur, soit au contraire sous la forme d'une référence.\\ <code cpp> | ||
- | Value& Value::operator+=(const A& anotherValue) | ||
- | { | ||
- | this->m_value += anotherValue.m_value; | ||
- | return *this; | ||
- | } | ||
- | </code> | ||
- | * peremttre de dupliquer l'objet en appelant un constructeur qui attend une référence à l'objet ou de passer la référence de l'objet à une fonction qui attendrait une telle référence.\\ <code cpp> | ||
- | Value& Value::operator++(int) | ||
- | { | ||
- | Value value(*this); | ||
- | this->m_value ++; | ||
- | return value; | ||
- | } | ||
- | </code> | ||
- | |||