说我有一堂课:
class A
{
public:
A() {}
};
和一个函数:
void x(const A & s) {}
我这样做:
x(A());
有人可以向我解释有关通过引用传递临时对象的规则吗?就编译器允许的内容而言,在哪里需要 const,是否发生隐式复制等等。从尝试来看,似乎您需要 const 这是有意义的,但是对于这一切是否有正式的规则?
Thanks!
有一条正式规则 - C++ 标准(如果您感兴趣,请参阅第 13.3.3.1.4 节)规定临时对象只能绑定到 const 引用 - 如果您尝试使用非 const 引用,编译器必须将其标记为一个错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)