补充一点: 在C++11后,由于引入了移动语意,对于“2.2.7什么情况下会调用拷贝构造函数”这个问题需要限制传入的对象是左值还是右值。实际上如果定义了移动构造函数又没有手动提供拷贝构造函数,则默认删除拷贝构造函数。特别地,“2.一个对象以值传递的方式从函数返回” ,这个方式如果在触发返回值优化的情况下,直接将临时对象构建到调用函数的栈上,不触发拷贝构造函数,如果没有返回值优化,则优先调用移动构造函数,如果没有CExample(CExample&&),则调用CExample(const CExample&),如果还没有才会调用一般的拷贝构造函数。感谢楼主总结,一下回忆起来了好多东西.
3

相关推荐

07-01 23:23
郑州大学 Java
否极泰来来来来:牛客迟早有高三的
点赞 评论 收藏
分享
投递牧原集团等公司7个岗位
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务