inheritance - Why can't class be destructed in polymorphism C++ -


i have problem using polymorphism. code here:

class { public:     a() {cout << "construct a" << endl;}     virtual ~a() {cout << "destroy a" << endl;} };  class b : public a{ public:     b() {cout << "construct b" << endl;}     ~b() {cout << "destroy b" << endl;} }; void main() {     *p = new b; } 

the result is:

construct construct b 

why 'p' can not destroyed or may wrong somewhere. thanks.

you need invoke

delete p; 

to delete pointer , call destructor. dynamically allocated objects not have destructor called automatically, that's why need invoke delete operator, first invokes destructor calls operator delete release memory.


Comments

Popular posts from this blog

javascript - Bootstrap Popover: iOS Safari strange behaviour -

Website Login Issue developed in magento -

Can the constants be defined inside a model file of a framework in PHP? -