C 语言中的多态对象复制
问题:
在 C 中,如何实现深度对象复制当确切的派生类创建时,创建基类实例的副本未知?
答案:
利用虚拟克隆方法
要有效地深度复制多态对象,可以使用以下方法使用:
利用协变返回类型
但是,有一个более“C”做法:
协变返回示例类型:
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中文网其他相关文章!