次のクラス階層があるとします。
class Base {
...
};
class Derived1 : public Base {
...
};
class Derived2 : public Base {
...
};
またはオブジェクトのBase*
いずれかを指す可能性がある場合、具体的なタイプが不明な場合、実際のオブジェクトのコピーを作成するにはどうすればよいですか。コピー コンストラクターを定義することを考えましたが、関連する実際の型を知らなければ、これは不可能だと思います。私が考えることができる唯一の解決策は、階層内の各型でメソッドを定義することです。もっとエレガントなものを考えられる人はいますか?Derived1
Derived2
clone()