有自己定义拷贝构造函数的必要吗?
1确实提供了一个复制构造函数,但此函数严格按位复制。一旦类中有动态分配成员,这将是一个问题(通常称为深度复制),这是不正确的
2如果没有动态分配成员,这是不必要的。但是有动态分配成员是必要的,也需要完成赋值运算符和析构函数的重载,这样当有动态分配成员时就不会有内存泄漏
析构函数的自动调用(2)堆中的对象不会自动调用析构函数。析构函数调用delete后,它会主动调用析构函数
复制构造函数用于在未生成对象时构造另一个对象。
=赋值运算符重载用于在对象已存在时使用另一个对象构造对象。有必要判断它不是通过给自身赋值来构造的。同时判断部分构件不需要重新构造。
原文标题:c++拷贝构造函数 有自己定义拷贝构造函数的必要吗?,如若转载,请注明出处:https://www.saibowen.com/wenda/24274.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「赛伯温」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。