我想複製C++中的對象。問題是,我已經派生類與多態,如I所示的僞代碼:C++複製多態對象
class BaseCl { some virtual functions };
class DerivedClass : public BaseCl { ... };
...
BaseCl * b1 = new DerivedClass();
BaseCl * b2 = new "copy of b1"; (just pseudocode)
的問題是最後一行:
我想複製類「BaseCl」的一個對象,但由於多態性,副本必須與「DerivedClass」的原始對象相同。
這樣做的最好方法是什麼?
非常感謝你,任何幫助表示讚賞。
編輯:問題已經解決:
插入:
virtual BaseCl *clone() = 0;
在基類和
DerivedCl *clone() {return new DerivedCl(*this);}
在派生類。謝謝你們。
這或多或少這裏所描述的同樣的問題:http://stackoverflow.com/questions/12447427/ c-maintain-a-mixed-collection-of-subclass-objects/12447459#12447459 –