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),并立即绑定到 constant-reference refa。这具有延长临时变量的生命周期以匹配refa变量范围的效果。

于 2012-08-03T09:00:08.423 回答