我有一个抽象类,并且它的一个子类有一个指向抽象类的成员指针。
必须为另一个类编写复制构造函数和赋值操作符。如何为复制类的成员分配内存?
class Foo{
public:
virtual ~Foo() = 0;
};
class Bar: public Foo{
private:
int a;
public:
~Bar(){
;
}
};
class Qwe: public Foo{
private:
Foo *pointer;
public:
~Qwe(){
delete pointer;
}
}
这应该通过在抽象类(在派生类中实现)中添加复制(或克隆)成员函数来解决。只有类本身知道如何复制类的内容,所以应该这样做。