代码:
1 #include <iostream> 2 3 using namespace std; 4 5 class A{ 6 public: 7 virtual void print(){ 8 cout<<"i am A"<<endl; 9 } 10 }; 11 class B:public A{ 12 public: 13 void print(){ 14 cout<<"i am B"<<endl; 15 } 16 }; 17 class C:public B{ 18 public: 19 void print(){ 20 cout<<"i am C"<<endl; 21 } 22 }; 23 24 int main(){ 25 26 B* pB = new C; 27 pB->print(); //调用类C的函数 28 pB->A::print(); //调用类A的函数 29 pB->B::print(); //调用类B的函数 30 31 A* pA = new C; 32 pA->print(); 33 34 return 0; 35 }
输出:
i am C i am A i am B i am C
分析:
调用特定的函数可能需要加上相关作用域。