Pemusnah adalah penting dalam polimorfisme C++, memastikan objek kelas yang diperolehi membersihkan memori dengan betul apabila ia dimusnahkan. Polimorfisme membenarkan objek daripada jenis yang berbeza untuk bertindak balas kepada panggilan kaedah yang sama. Pemusnah dipanggil secara automatik apabila objek dimusnahkan untuk melepaskan ingatannya. Pemusnah kelas terbitan memanggil pemusnah kelas asas untuk memastikan memori kelas asas dilepaskan.
Peranan pemusnah dalam polimorfisme dalam C++
Pemusnah memainkan peranan penting dalam polimorfisme dalam C++ Ia memastikan objek kelas terbitan dimusnahkan dengan cara yang sesuai untuk membersihkan ingatannya.
Pengenalan kepada Polimorfisme
Polymorphism ialah keupayaan untuk membenarkan objek daripada jenis yang berbeza untuk bertindak balas kepada panggilan kaedah yang sama. Dalam C++, ini dicapai melalui pewarisan dan fungsi maya.
Destructor
Destructor ialah fungsi ahli khas yang dikaitkan dengan kelas yang dipanggil secara automatik apabila objek kelas itu dimusnahkan. Ia bertanggungjawab untuk membebaskan sebarang memori atau sumber yang diperuntukkan oleh objek.
Peranan pemusnah dalam polimorfisme
Apabila objek kelas terbitan dicipta, memori akan diperuntukkan untuk menyimpan ahli data unik kepada kelas terbitan. Walau bagaimanapun, apabila objek kelas terbitan dimusnahkan, memori kelas asas juga perlu dikeluarkan. Pemusnah memastikan ini dengan memanggil pemusnah kelas asas.
Contoh Praktikal
Pertimbangkan kod berikut:
class Base { public: Base() { std::cout << "Base constructed" << std::endl; } virtual ~Base() { std::cout << "Base destructed" << std::endl; } }; class Derived : public Base { public: Derived() { std::cout << "Derived constructed" << std::endl; } ~Derived() { std::cout << "Derived destructed" << std::endl; } }; int main() { Base* base = new Derived(); delete base; return 0; }
Output:
Base constructed Derived constructed Derived destructed Base destructed
Dalam contoh ini, ingatan kelas Derived
类派生自 Base
类。当 Derived
对象通过 new
运算符被创建时,Derived
和 Base
构造函数都会被调用。当对象通过 delete
运算符被销毁时,Derived
析构函数会先被调用,释放 Derived
类的内存。然后,Base
析构函数会被调用,释放 Base
.
Atas ialah kandungan terperinci Apakah peranan yang dimainkan oleh pemusnah dalam polimorfisme dalam C++?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!