多态性与虚函数
多态性:向不同的对象发送同一个消息,不同的对象在接受时会产生不同的行为(即方法)#include<iostream>usingnamespacestd;classB{public:voidprint(){cout<<"B::print()"<<endl;}virtualvoidshow();};voidB::show(){cout<<"B::show()"<<endl;}classD:publicB{public:voidprint(){cout<<"B::print()"<<endl;}voidshow(){cout<<"D::show()"<<endl;}};classE:publicD{public:voidshow(){cout<<"E::show()"<<endl;}};voidfun(B*pb){pb->show();}intmain(){Dd;Bb;Ee;fun(&d);fun(&b);fun(&e);getchar();return0;}
最好把基类的析构函数声明为虚函数#include<iostream>usingnamespacestd;classB{public:B(){cout<<"B()"<<endl;}virtual~B(){cout<<"~B()"<<endl;}};classD:publicB{public:D(){cout<<"D()"<<endl;}~D(){cout<<"~D()"<<endl;}};intmain(){//Dd;B*pb=newD;deletepb;getchar();return0;}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。