C++“拷贝构造函数”和“等号重载”有什么区别?
2021/7/29 22:08:06
本文主要是介绍C++“拷贝构造函数”和“等号重载”有什么区别?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
CTypeA(const CTypeB& b)
CTypeA& operator=(const CTypeB& b)
一直没弄懂这两个有什么区别。
只知道,重载了=号,下面复制的时候就不调用拷贝构造函数了。
CTypeA a1; CTypeB b1; a1 = b1;
那什么时候会有区别?
class CTypeB { public: int b; }; class CTypeA { public: int a; CTypeA(){} CTypeA(const CTypeB& b) :a(b.b) { } CTypeA& operator=(const CTypeB& b) { a = b.b; return *this; } operator CTypeB() { CTypeB b; b.b = a; return *this; } };
答:
正所谓其名,拷贝构造函数是在构造对象的时候用,而等号重载则在在赋值的时候用 CTypeA a; CTypeA b(a); //在构造b CTypeA b = a; //在构造b b = a; //在赋值
http://blog.csdn.net/swgsunhj/article/details/37871249
这篇关于C++“拷贝构造函数”和“等号重载”有什么区别?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-23DevExpress 怎么实现右键菜单(Context Menu)显示中文?-icode9专业技术文章分享
- 2024-12-22怎么通过控制台去看我的页面渲染的内容在哪个文件中呢-icode9专业技术文章分享
- 2024-12-22el-tabs 组件只被引用了一次,但有时会渲染两次是什么原因?-icode9专业技术文章分享
- 2024-12-22wordpress有哪些好的安全插件?-icode9专业技术文章分享
- 2024-12-22wordpress如何查看系统有哪些cron任务?-icode9专业技术文章分享
- 2024-12-21Svg Sprite Icon教程:轻松入门与应用指南
- 2024-12-20Excel数据导出实战:新手必学的简单教程
- 2024-12-20RBAC的权限实战:新手入门教程
- 2024-12-20Svg Sprite Icon实战:从入门到上手的全面指南
- 2024-12-20LCD1602显示模块详解