有下面的一个类
class A
{
public:
A(int t)
{
};
void play()
{
};
};
这个类有个隐式转换构造函数。
class A
{
public:
A(int t)
{
};
void play()
{
};
};
这个类有个隐式转换构造函数。
const A& a1=10;//ok,调用隐式构造函数构造临时对象,并且延长临时对象的生命周期。
A& a2=10;//error,隐式转换构造函数构建的临时对象是右值(??),必须绑定到const隐用上。
A& a3=(A)10;//ok,显式的转换得到是左值,可以绑定到非const引用。
(A)10.play();//ok,是个左值
不知道我上面的理解是否正确,望各位大虾指教。谢谢。

浙公网安备 33010602011771号