2

次のコードを検討してください。

class B;

class A
{
  public:
    A() {}
    A(B &b);
};

class B {};

A::A(B &b) {}

int main()
{
    B b;

    const A &refa = b;// does this line create a temporary value?

    return 0;
}

私の質問は: コードconst A &refa = b;は一時的な値を作成しますか?

4

1 に答える 1

8

A(b)はい、初期化ステートメントで一時オブジェクトが作成され、すぐに定数参照にバインドされますrefa。これには、一時変数の有効期間を延長して、refa変数のスコープに一致させる効果があります。

于 2012-08-03T09:00:08.423 に答える