2017-01-02 25 views
-1

私は最近C++の学習を始め、この問題を偶然見つけました。それはダムに聞こえるが、なぜ我々は参照の初期化C++

int r= 20; 
int &ref = r; 
ref(20); 

を通じて参照変数に値を初期化することができない場合は失礼 ものの参照変数としてそれを使用しないときは20点の作品の値を初期化するこの方法。

IDE:C++ 11

これはなぜですか?

+0

例では、2行目で初期化されました。3行目では、 'ref = 20'で新しい値を割り当てることができます。 – wally

+0

なぜint&ref(20)を行えないのか尋ねるのですか? – wally

+0

@Mampampester私は 'ref = 20'を使うことができると知っていますが、私は' ref(20) 'を使うことができません。 – DatDankMeme

答えて

2

この値を20に初期化する方法は、参照変数として使用しないときに機能しますが、

どのような意味で機能しますか?コンパイラref(20);が関数呼び出しのように見えるので、int &refint refに変更すると、同じエラーが表示されます。

私はあなたがint r(20);が機能すると思います。参照の場合は、参照先の変数にバインドされていなければなりません。変数にバインドすることはできません。

+0

ありがとう、私は何が間違っていたのか理解していました。 'r(20)'を初期化するとき、コンパイラは私が関数に値を渡していると考えました。 – DatDankMeme

関連する問題