0

给定

struct A
{
    void a(void) { std::cout << "A" << std::endl; }
};

const A &a = A(); /* Make a copy of A and bind to a */
const A &b(A());  /* Does nothing */

a.a(); /* Prints A */
b.a(); /* Error, same as if b doesn't exist */

为什么第二种形式的“将临时绑定到 const 引用”似乎等同于无操作?

4

1 回答 1

2

这只是最令人烦恼的 parse的另一种情况,您正在声明一个函数而不是对A.

您可以通过使用 C++11 统一初始化来解决此问题:

const A &b{A()};
于 2013-04-25T13:18:44.010 回答