c – 何时提供用户定义的复制构造函数和赋值运算符?
作者:互联网
当我们有指针数据成员时,我们只需要编写一个复制构造函数和赋值运算符(因为否则当编译器生成的复制文件执行浅拷贝时,两个指针可能指向同一个对象)?
如果我们的所有数据成员都分配在堆栈上,我们可以依赖编译器定义的复制构造函数和赋值运算符吗?
解决方法:
指针无疑是最明显的情况,但并非真正唯一的指针.
另一个例子是在ctor中打开数据库连接并在dtor中关闭它的类.复制ctor需要做一些事情来复制数据库连接,因此复制到数据库的连接将与原始连接分开关闭.
标签:c,memory-management,deep-copy,copy-constructor 来源: https://codeday.me/bug/20190831/1775433.html