为什么建议提供复制构造函数的实现而不是使用编译器提供的“默认复制构造函数”?
答案 0 :(得分:0)
如果你的类包含指针成员,是动态分配的,那么你需要提供自己版本的copy construcor,因为默认版本只是对它们进行浅层复制。
答案 1 :(得分:0)
不是。
默认的复制构造函数在99.9%的情况下是完美的。
拥有指针的类的例外。这里默认复制构造函数的浅表副本不能像初学者那样工作。
但是你应该永远不会在你的班级中有指针,所以它成为一个非问题。为了明确这一点,任何拥有的指针都应该包含在智能指针(或容器类型)对象中。所以这不是问题。
如果您正在编写智能指针或容器之类的对象,那么您需要实现三个规则。