2

抽象クラスがあり、そのサブクラスの 1 つに抽象クラスへのメンバー ポインターがあります。

その別のクラスのコピー コンストラクターと代入演算子を作成する必要があります。コピーしたクラスのメンバーにメモリを割り当てるにはどうすればよいですか?

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

1 に答える 1

3

これは、抽象クラス(派生クラスに実装されている)にコピー(またはクローン)メンバー関数を追加することで解決する必要があります。クラスの内容をコピーする方法を知ることができるのはクラス自体だけなので、これを行う必要があります。

于 2012-12-26T22:41:15.010 に答える