当我们定义复制构造函数时,是否需要清除我们正在编写的对象的内容?我正在实现一个二叉搜索树,并想知道我是否会有内存泄漏,除非我在实现复制构造函数和赋值运算符时清理它.
当我们定义复制构造函数时,是否需要清除我们正在编写的对象的内容?
在构建时,没有任何内容需要被覆盖.只需确保在构造函数成员初始化列表中执行成员变量的所有副本,而不是在构造函数的主体中执行.
否则,编译器将为成员生成默认初始化,然后可能会分配一些内容,实际上需要清除和覆盖(或深度复制).
特别是如果你按照自己的意愿处理指针的话.
最好你应该遵循三(五)规则,以确保一切都做到一致.