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



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

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

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

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

最新更新