2

いくつかの場所で、このように宣言された変数を見ました

const int &var1;
extern int & var2;

これらの変数は別の場所で定義されています。変数への参照を宣言するときは、同じ場所でその変数への参照をバインドするといつも思っていました。ここで何かが欠けています。また、修飾子がない場合 (const や extern など)、上記のように宣言された参照も見たことがありません。

4

3 に答える 3

6
const int &var1;

classaまたは a の一部でない場合、これは不正ですstructそうである場合は、コンストラクター初期化子リストで初期化する必要があります。

それが合法である理由は、そのクラスのオブジェクトが作成されるまで変数が存在しないためです。したがって、話す参照がないため、バインドされていない参照はありません。

于 2012-05-29T08:38:48.207 に答える
2

変数の実際の宣言は、それが参照、ポインター、または通常の変数であっても、変数の型とは何の関係もありません。

例で変数への参照があったとしても、これはそれらが初期化された場所に関連するものではありません。参照を持つことは便利です。なぜなら、別の変数から割り当てて、逆参照を気にせずに実際にそれらをポインターとして使用できるからです。それは他の変数と同じです。

于 2012-05-29T08:37:15.860 に答える