2012-12-26 31 views
2

我有一個抽象類,我有一個它的子類有一個指向抽象類的成員指針。如何爲抽象類的未知子類分配內存

我必須爲另一個類寫一個拷貝構造函數和賦值操作符。如何爲複製類的成員分配內存?

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

這包含在[C++ Faq](http://www.parashift.com/c++-faq/copy-of-abc-via-clone.html)中。 –

回答

3

這應該通過在抽象類將一個拷貝(或克隆)成員函數(即在派生類中實現)來解決。只有類本身可以知道如何複製類的內容,所以這是應該如何完成的。