面试题60:分析最后输出的结果


    01 #include<iostream.h> 02 03 class A 04 { 05 public: 06 virtual void print(void) 07 { 08 cout<<"A:print()"<<endl; 09 } 10 }; 11 class B:public A 12 { 13 public: 14 virtual void print(void) 15 { 16 cout<<"B:print()"<<endl; 17 }; 18 }; 19 class C:public B 20 { 21 public: 22 virtual void print(void) 23 { 24 cout<<"C:print()"<<endl; 25 } 26 }; 27 void print(A a) 28 { 29 a. print(); 30 } 31 void main(void) 32 { 33 A a,pa,pb,*pc; 34 B b; 35 C c; 36 pa=&a; 37 pb=&b; 38 pc=&c; 39 a. print(); 40 b. print(); 41 c. print(); 42 pa->print(); 43 pb->print(); 44 pc->print(); 45 print(a); 46 print(b); 47 print(c); 48 }答:最后输出的结果如下所示。 A:print() B:print() C:print() A:print() B:print() C:print() A:print() A:print() A:print()