#include <iostream> #include <string> using namespace std; class A { public: void f(int i) {cout<<"...A"<<endl;} }; class B:public A { public: virtual void f(int i) {cout<<"...B"<<endl;} }; class C:public B { public: void f(int i) {cout<<"...C"<<endl;} }; class D:public C { public: void f(int) {cout<<"...D"<<endl;} }; void main() { A *pA,a; B *pB,b; C c; D d; pA=&a; pA->f(1); pA=&b; pA->f(1); pA=&c; pA->f(1); pA=&d; pA->f(1); } 虚特性在定义和继承他的类有效。。。A不存在虚函数。。都是A