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);}
派生クラスで。皆さん、ありがとうございました。