规范赋值运算符必须需要复制构造函数

时间:2013-02-19 15:22:13

标签: c++ class

我创建了两个类,并在其他类中声明了一个类的对象,如下所示,但是我收到一个警告,该类必须声明一个规范赋值运算符并需要一个复制构造函数。

class Base {
public:
    int value;
    virtual int getData() { retun 0; };
}

class test {
public:
    int data;
}

class B : public Base {
    test *var;
}

如何修复此警告?

1 个答案:

答案 0 :(得分:0)

这是基本的C ++:无论何时将指针放入类中,该类都需要显式的复制构造函数和赋值运算符。

否则, 会在类及其副本全部尝试删除同一对象的情况下结束。或者某些副本指向前一段时间删除的对象。

如果您正在使用对象生命周期和原始指针进行棘手的事情,那么无论如何都要声明复制构造函数 并编写解释正在发生的事情的注释。