2016 - 2024

感恩一路有你

c++拷贝构造函数 有自己定义拷贝构造函数的必要吗?

浏览量:2769 时间:2021-03-13 12:27:46 作者:admin

有自己定义拷贝构造函数的必要吗?

1确实提供了一个复制构造函数,但此函数严格按位复制。一旦类中有动态分配成员,这将是一个问题(通常称为深度复制),这是不正确的

2如果没有动态分配成员,这是不必要的。但是有动态分配成员是必要的,也需要完成赋值运算符和析构函数的重载,这样当有动态分配成员时就不会有内存泄漏

析构函数的自动调用(2)堆中的对象不会自动调用析构函数。析构函数调用delete后,它会主动调用析构函数

复制构造函数用于在未生成对象时构造另一个对象。

=赋值运算符重载用于在对象已存在时使用另一个对象构造对象。有必要判断它不是通过给自身赋值来构造的。同时判断部分构件不需要重新构造。

c++拷贝构造函数 缺省值和默认值的区别 构造函数

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。