私は最近C++の学習を始め、この問題を偶然見つけました。それはダムに聞こえるが、なぜ我々は参照の初期化C++
int r= 20;
int &ref = r;
ref(20);
を通じて参照変数に値を初期化することができない場合は失礼 ものの参照変数としてそれを使用しないときは20点の作品の値を初期化するこの方法。
IDE:C++ 11
これはなぜですか?
私は最近C++の学習を始め、この問題を偶然見つけました。それはダムに聞こえるが、なぜ我々は参照の初期化C++
int r= 20;
int &ref = r;
ref(20);
を通じて参照変数に値を初期化することができない場合は失礼 ものの参照変数としてそれを使用しないときは20点の作品の値を初期化するこの方法。
IDE:C++ 11
これはなぜですか?
この値を20に初期化する方法は、参照変数として使用しないときに機能しますが、
どのような意味で機能しますか?コンパイラref(20);
が関数呼び出しのように見えるので、int &ref
をint ref
に変更すると、同じエラーが表示されます。
私はあなたがint r(20);
が機能すると思います。参照の場合は、参照先の変数にバインドされていなければなりません。変数にバインドすることはできません。
ありがとう、私は何が間違っていたのか理解していました。 'r(20)'を初期化するとき、コンパイラは私が関数に値を渡していると考えました。 – DatDankMeme
例では、2行目で初期化されました。3行目では、 'ref = 20'で新しい値を割り当てることができます。 – wally
なぜint&ref(20)を行えないのか尋ねるのですか? – wally
@Mampampester私は 'ref = 20'を使うことができると知っていますが、私は' ref(20) 'を使うことができません。 – DatDankMeme