J'ai lu les réponses à cette question C++ pour et le contre et a obtenu ce doute en lisant les commentaires.
les programmeurs trouvent fréquemment source de confusion que "cela" est un pointeur, mais pas une référence. une autre confusion est pourquoi le "bonjour" n'est pas de type std::string, mais donne un char const* (pointeur) (d'après tableau de pointeur de conversion) – Johannes Schaub - litb Déc 22 '08 à 1:56
Qui montre seulement qu'il n'utilise pas les mêmes conventions que les autres (plus tard) des langues. – le dorfier Déc 22 '08 à 3:35
J'appellerais le "cette" chose une jolie question triviale. Et oups, merci pour la capture de quelques erreurs dans mes exemples de comportement indéfini. :) Bien que je ne comprends pas quelles sont les informations à propos de la taille a à voir avec quoi que ce soit dans la première. Un pointeur est tout simplement pas permis à point à l'extérieur de la mémoire allouée – jalf.com Déc 22 '08 à 4:18
Est-ce une constante poiner? – yesraaj Déc 22 '08 à 6:35
cela peut être constante si la méthode est const int getFoo() const; <- dans le champ d'application de getFoo, "ce" est constante, et est donc en lecture seule. Cela empêche les bugs et assure un certain niveau de garantie à l'appelant que l'objet ne change pas. – Doug T. Dec 22 '08 à 16:42
vous ne pouvez pas réaffecter "ce". j'.e vous ne pouvez pas le faire "ce = &autres;", parce que c'est une rvalue. mais cela est de type T*, pas de type T const . j'.e c'est un non-pointeur constant. si vous êtes dans un const méthode, puis c'est un pointeur const. T const . mais le pointeur lui-même est nonconst – Johannes Schaub - litb Déc 22 '08 à 17:53
pensez à "ce", comme ceci: #define ce (this_ + 0) où le compilateur crée "this_" comme un pointeur vers l'objet et le rend "ce" d'un mot clé. vous ne pouvez pas affecter de "ce" parce que (this_ + 0) est une rvalue. bien sûr, ce n'est pas la façon dont il est (il n'y a pas une telle macro), mais il peut aider à la comprendre – Johannes Schaub - litb Déc 22 '08 à 17:55
Ma question est, pourquoi this
est un pointeur pas une référence? Une raison en particulier pour ce qui en fait un pointeur?