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:38] 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> | ||
| - | |||