签到

09月14日
尚未签到

共有回帖数 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 回复

共有回帖数 0
  • 回 帖
  • 表情 图片 视频
  • 发表

登录直线网账号

Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号 意见反馈 | 关于直线 | 版权声明 | 会员须知