#include iostreamusing namespace std; class Base public~Base;;Base~Base cout Base destructor endl; class Derived public Basepublic Derived; ~Derived;private int p;;DerivedDerived p = new int0;Deri
This code defines two classes, Base and Derived, where Derived inherits from Base. Both classes have a constructor and a destructor. The Derived class also has a private integer pointer p, which is allocated dynamically in the constructor and deallocated in the destructor.
The main function creates a Derived object and assigns it to a Base pointer. It then passes this pointer to the function fun, which deletes it. Since the Base class destructor is virtual, the Derived destructor is called before the Base destructor, allowing the memory pointed to by p to be deallocated before the object is destroyed.
Overall, this code demonstrates the importance of using virtual destructors when working with polymorphic classes that have dynamic memory allocation
原文地址: https://www.cveoy.top/t/topic/edsJ 著作权归作者所有。请勿转载和采集!