質問

私はクラスを持っていると言います

class A
{
 public:
 A() {}
};

と機能:

void x(const A & s) {}

と私が行います。

x(A());

誰かが私を参照することにより、一時的なオブジェクトを渡すことに関するルールを説明してくださいだろうか?コンパイラが暗黙のコピーが遊ん等から、発生した場合は、constの必要な場所、ことができますどのような面では、あなたが理にかなっているのconstを必要とするように思えるが、このすべてについて、正式なルールがあるのでしょうか?

ありがとうございます。

役に立ちましたか?

解決

C ++標準(セクション13.3.3.1.4あなたが興味を持っている場合)、一時的にのみconst参照にバインドできると述べている - - 正式なルールがありますが、コンパイラがなければならない非const参照を使用しようとした場合エラーとしてフラグこれを

他のヒント

ハーブサッターここでそれを説明する細かい仕事をしていません: http://www.gotw.ca /gotw/081.htmする

X()一時Aにconst参照を取らなければならないか、Xが()Aによって値を取る必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top