Copie d'objets polymorphes en C
Question :
En C, comment une profondeur une copie d'une instance d'une classe de base soit créée lorsque la classe dérivée exacte est inconnu ?
Réponse :
Utilisation de la méthode de clonage virtuel
Pour copier efficacement en profondeur un objet polymorphe, l'approche suivante peut être utilisé :
Utilisation du retour covariant Tapez
Cependant, il y a un более "C " approche :
Exemple avec retour covariant 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&) : ... {} };
Cette approche est concise et conforme aux principes du polymorphisme en C . Il permet une copie approfondie et transparente des objets sans avoir besoin d'une copie explicite des membres dans la méthode Clone().
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!