C/C++中虚函数的调用

时间:2022-01-08 06:13:30

代码:

 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

 分析:

调用特定的函数可能需要加上相关作用域。