我有一个抽象类,我的一个子类有一个指向抽象类的成员指针。
我必须为另一个类编写一个复制构造函数和赋值运算符。如何为复制的类的成员分配内存?
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;
}
}
答案 0 :(得分:3)
这应该通过在抽象类中添加一个复制(或克隆)成员函数来解决(在派生类中实现)。只有类本身才能知道如何复制类的内容,所以这就是它应该如何完成的。