class base { public: base() { cout<<"Constructing base \n"; } ~base() { cout<<"Destructing base \n"; } };class derived: public base { public: derived() { cout<<"Constructing derived \n"; } ~derived() { cout<<"Destructing derived \n"; }};int main(void){ derived *d = new derived(); base *b = d; delete b; getchar(); return 0;} |
Although the output of following program may be different on different compilers, when compiled using Dev-CPP, it prints following:
Constructing base Constructing derived
// If virtual ~base()
//then call first : "Destructing Dervied" Destructing base
No comments:
Post a Comment