共有回帖数 0 个
-
类MyClass:
class MyClass{
public:
MyClass(){ cout "Default-Constructor" endl; }
MyClass(const MyClass&){ cout "Copy-Constructor" endl; }
private:
MyClass& operator=(const MyClass&);
};
大家认为这样写, 将调用哪些constructor(忽略内存释放)?
MyClass mc1 = MyClass();
MyClass mc2(mc1);
MyClass mc3 = *(::new MyClass);
我的问题主要在mc1和mc2的初始化上, 这两种初始化有区别么?
PS:
mc2调用的copy-constructor,
而mc1调用的default-constructor,
MyClass()是否创建了临时匿名对象?
如果创建了, mc1应该是使用copy-constructor初始化的,
但是程序显示, 编译器只调用了default-constructor,
这么看来, MyClass mc1 = MyClass()就相当于MyClass mc1.....
楼主 2016-01-28 13:31 回复
Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号
意见反馈 |
关于直线 |
版权声明 |
会员须知