Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menyalin Dalaman Objek Polimorfik dalam C?
Menreplikasi objek polimorfik dalam C memerlukan pertimbangan yang teliti tentang sifat dinamiknya. Apabila berhadapan dengan kelas terbitan yang tidak diketahui, pembinaan salinan konvensional atau pembebanan operator menjadi tidak praktikal.
Penyelesaian yang dicadangkan melibatkan pelaksanaan kaedah Klon() maya dalam kelas asas:
class Base { public: virtual Base* Clone() = 0; };
Dalam setiap kelas terbitan, pelaksanaan Clone() menentukan jenis yang sesuai:
class Derived1 : public Base { public: Derived1* Clone() { return new Derived1(*this); } };
Alternatif C pendekatan adalah untuk memanfaatkan pembina salinan dan jenis pulangan kovarian:
class Base { public: virtual Base* Clone() = 0; }; class Derivedn : public Base { public: Derivedn* Clone() { return new Derivedn(*this); // Covariant return type } private: Derivedn(const Derivedn&) : ... {} };
Dengan melaksanakan kaedah Clone() atau menggunakan pembina salinan, C membenarkan penyalinan mendalam bagi objek polimorfik, menampung kedua-dua ketidakpastian jenis dinamik dan integriti data.
Atas ialah kandungan terperinci Bagaimana untuk Menyalin Dalaman Objek Polimorfik dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!