胡说八道

学而不思则罔,思而不学则殆

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::
有下面的一个类
 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,是个左值

 不知道我上面的理解是否正确,望各位大虾指教。谢谢。

posted on 2004-12-29 11:35  胡说八道  阅读(547)  评论(1)    收藏  举报