如何为抽象类的未知子类分配内存

时间:2012-12-26 22:36:46

标签: c++ pointers abstract-class

我有一个抽象类,我的一个子类有一个指向抽象类的成员指针。

我必须为另一个类编写一个复制构造函数和赋值运算符。如何为复制的类的成员分配内存?

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;
    }
}

1 个答案:

答案 0 :(得分:3)

这应该通过在抽象类中添加一个复制(或克隆)成员函数来解决(在派生类中实现)。只有类本身才能知道如何复制类的内容,所以这就是它应该如何完成的。