40 votes

Pourquoi les pointeurs vers une référence sont-ils illégaux en C++ ?

Comme le titre le mentionne lui-même - pourquoi le pointeur vers une référence est-il illégal, alors que l'inverse est légal en C++ ?

5voto

Potatoswatter Points 70305

Quelle serait la différence entre un pointeur vers une référence (vers l'objet) et un pointeur vers l'objet réel ? La référence ne peut pas être modifiée pour faire référence à un autre objet. Il suffit d'utiliser un pointeur régulier vers l'objet en question.

D'autre part, une référence à un pointeur, comme toute autre référence, vous donne une poignée modifiable à une variable particulière. Il se trouve que c'est un pointeur dans ce cas.

1voto

Karl Knechtel Points 24349

Parce qu'une référence n'est pas une chose qui peut être pointée du doigt, ce qui est à son tour parce qu'elle n'a pas besoin d'être représentée n'importe où dans la mémoire. Des références existent pour donner des noms alternatifs à des choses déjà existantes. Vous pouvez obtenir un pointeur vers la chose renommée, mais c'est un pointeur vers une valeur, pas un pointeur vers une référence.

0voto

John Points 1

Supposons que "int *&X" soit légal, parce que la référence n'est qu'un autre nom d'objet, l'expression est égale à "int *X" et n'est pas utile.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X