ce pointeur
Dans une classe, il y a un pointeur spécial très caché, qui est le pointeur this !
Pourquoi est-ce spécial ? Car tant qu'une classe est définie, le système prédéfinira un pointeur nommé ainsi et pointant vers l'objet courant. Même si nous ne pouvons pas le voir, nous pouvons l'utiliser.
Par exemple, regardons une fonction membre d'une classe d'horloge, le code utilisé pour définir la valeur de l'heure :
intClock::SetTime(inth,intm,ints){H=h;M=m;S=s;}
Vous pouvez voir que les variables membres de la classe Clock elle-même sont H, M et S. Il faut leur attribuer des valeurs de l'extérieur. Afin de les distinguer, nous définissons les paramètres formels en minuscules. Donc si on connaît l’existence de ceci, on peut écrire ainsi :
intClock::SetTime(inth,intm,ints){this->H=h;this->M=m;this->S=s;}//Il peut également être écrit comme : intClock::SetTime(inth, intm,ints ){(*this).H=h;(*this).M=m;(*this).S=s;}
On peut voir que les deux méthodes d'écriture ci-dessus utilisent le pointeur this caché dans l'objet, qui peut clairement être membre de cette classe, distinguant ainsi clairement cet objet des variables externes. En fait, lorsqu'un objet appelle sa fonction membre, même s'il existe plusieurs objets de cette classe dans le programme, il n'y a qu'un seul code pour la fonction membre. Par conséquent, afin de distinguer quel objet appelle la fonction membre, le compilateur également. convertit Il est utilisé sous la forme de cette fonction membre.