Let's say there is a class Object and then another class Cat that inherits Object. Next, there is a list of Object* (pointers). Then, I create a new Cat and put it into the list. After some time I want to delete all Cats and call delete on each member of the list. Does it call destructor of Cat?
Yes if you marked the destructor of object as virtual.
class Object {
public:
virtual ~Object(){} //make the base class destructor virtual
};
class cat : public Object {
public:
virtual ~cat(){} // now this gets called when a pointer to Object that is a cat is destroyed
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With