当一个成员是一个指针的类时,我们需要为它实现一个复制构造函数。我有一个问题,如果我们实现了一个复制构造函数,我们是否应该实现一个赋值构造函数?
最诚挚的问候,
答案 0 :(得分:10)
它不是一个赋值构造函数,而是一个赋值运算符,是的,你应该这样做。经验法则是:如果你需要编写一个析构函数,那么你还应该提供一个复制构造函数和赋值运算符(或阻止编译器生成一个)
答案 1 :(得分:2)
这里的另一个选择是使用一些适合你的任务的智能指针。通过选择正确的智能指针,您可以依赖编译器生成的析构函数,复制构造函数和赋值运算符(并且不写任何自己的指针)......
答案 2 :(得分:0)
每当一个类有一个动态分配内存的成员变量时,应该总是实现以下
注意:如果指针变量是静态的,则无需拥有所有这些。