0

重複の可能性:
C ++参照、参照される変数を変更する

C ++での参照は、使用時に逆参照される単なるポインターであることを私は知っています。この質問は、基になるポインタにアクセスして変更する方法についてです。

このコードを考えてみましょう:

int x;
int& x_ref = x;              //now equivalent to x
int* x_ptr = &x;         //stores address of x
int* x_ref_ptr = &x_ref; //ALSO stores address of x

int&* x_ref_ptr_ref = ???; //what would this mean?

初期化後に参照が指す場所を変更しようとしています。私は型の安全性や適切な慣行については心配していません。C ++言語には、これを実現するためのツールがありますか?

4

2 に答える 2

5

参照するためのポインタはありません。形式が正しくありません。参照はオブジェクトのエイリアスです。エイリアスへのポインタはどのように機能しますか?

また、参照を再設定できないのは言語の機能です。再封可能参照はポインターです。

于 2012-09-21T11:25:44.237 に答える
0

これは設計上不可能です。ポインタの代わりに参照を使用することで、宣言後にターゲットを変更しないことにします。すべての欠点と利点があります(その1つが「自動間接参照」です。参照に関するウィキペディアのエントリを注意深く読んでください。

ポインタに切り替える必要があります。

于 2012-09-21T11:30:32.910 に答える