其他分享
首页 > 其他分享> > c – 何时提供用户定义的复制构造函数和赋值运算符?

c – 何时提供用户定义的复制构造函数和赋值运算符?

作者:互联网

当我们有指针数据成员时,我们只需要编写一个复制构造函数和赋值运算符(因为否则当编译器生成的复制文件执行浅拷贝时,两个指针可能指向同一个对象)?

如果我们的所有数据成员都分配在堆栈上,我们可以依赖编译器定义的复制构造函数和赋值运算符吗?

解决方法:

指针无疑是最明显的情况,但并非真正唯一的指针.

另一个例子是在ctor中打开数据库连接并在dtor中关闭它的类.复制ctor需要做一些事情来复制数据库连接,因此复制到数据库的连接将与​​原始连接分开关闭.

标签:c,memory-management,deep-copy,copy-constructor
来源: https://codeday.me/bug/20190831/1775433.html