只实现复制构造函数,没有赋值构造函数

时间:2010-06-21 07:33:36

标签: c++

当一个成员是一个指针的类时,我们需要为它实现一个复制构造函数。我有一个问题,如果我们实现了一个复制构造函数,我们是否应该实现一个赋值构造函数?

最诚挚的问候,

3 个答案:

答案 0 :(得分:10)

它不是一个赋值构造函数,而是一个赋值运算符,是的,你应该这样做。经验法则是:如果你需要编写一个析构函数,那么你还应该提供一个复制构造函数和赋值运算符(或阻止编译器生成一个)

答案 1 :(得分:2)

这里的另一个选择是使用一些适合你的任务的智能指针。通过选择正确的智能指针,您可以依赖编译器生成的析构函数,复制构造函数和赋值运算符(并且不写任何自己的指针)......

答案 2 :(得分:0)

每当一个类有一个动态分配内存的成员变量时,应该总是实现以下

  1. 复制构造函数
  2. 作业运营商
  3. 析构函数
  4. 注意:如果指针变量是静态的,则无需拥有所有这些。