大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
多态性:向不同的对象发送同一个消息,不同的对象在接受时会产生不同的行为(即方法) #includeusing namespace std; class B { public: void print() { cout << "B::print()" << endl; } virtual void show(); }; void B::show() { cout << "B::show()" << endl; } class D :public B { public: void print() { cout << "B::print()" << endl; } void show() { cout << "D::show()" << endl; } }; class E :public D { public: void show() { cout << "E::show()" << endl; } }; void fun(B *pb) { pb->show(); } int main() { D d; B b; E e; fun(&d); fun(&b); fun(&e); getchar(); return 0; }
最好把基类的析构函数声明为虚函数 #includeusing namespace std; class B { public: B() { cout << "B()" << endl; } virtual ~B() { cout << "~B()" << endl; } }; class D :public B { public: D() { cout << "D()" << endl; } ~D() { cout << "~D()" << endl; } }; int main() { //D d; B *pb = new D; delete pb; getchar(); return 0; }