c++拷贝构造函数 有自己定义拷贝构造函数的必要吗?
浏览量:2769
时间:2021-03-13 12:27:46
作者:admin
有自己定义拷贝构造函数的必要吗?
1确实提供了一个复制构造函数,但此函数严格按位复制。一旦类中有动态分配成员,这将是一个问题(通常称为深度复制),这是不正确的
2如果没有动态分配成员,这是不必要的。但是有动态分配成员是必要的,也需要完成赋值运算符和析构函数的重载,这样当有动态分配成员时就不会有内存泄漏
析构函数的自动调用(2)堆中的对象不会自动调用析构函数。析构函数调用delete后,它会主动调用析构函数
复制构造函数用于在未生成对象时构造另一个对象。
=赋值运算符重载用于在对象已存在时使用另一个对象构造对象。有必要判断它不是通过给自身赋值来构造的。同时判断部分构件不需要重新构造。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。