C での多態性オブジェクトのコピー
質問:
C では、どのようにディープオブジェクトをコピーできますか?正確な派生クラスが作成されたときに、基本クラスのインスタンスのコピーが作成されます。不明ですか?
回答:
仮想クローン メソッドの利用
ポリモーフィック オブジェクトを効果的にディープ コピーするには、次のアプローチを使用できます。使用可能:
共変戻り型の利用
ただし、"C " があります。アプローチ:
共変戻り値を使用した例Type:
class Base { public: virtual Base* Clone() = 0; }; class Derivedn : public Base { public: // Call to copy constructor is implicit Derivedn* Clone() { return new Derivedn(*this); } private: Derivedn(const Derivedn&) : ... {} };
このアプローチは簡潔であり、 C のポリモーフィズムの原則に準拠しています。これにより、Clone() メソッドで明示的にメンバーをコピーする必要がなく、オブジェクトのシームレスなディープ コピーが可能になります。
以上が派生クラスが不明な場合に C でポリモーフィック オブジェクトをディープ コピーする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。