C++学习(23)

 1 //对于派生类对基类成员函数覆盖来说,调用成员函数的对象在程序编译时就已确定,即要么是基类对象,要么是派生类对象,只能属于固定的一种,不能在程序运营时改变
 2 //但对于虚函数来说,调用成员函数的对象要在程序运行时才能确定,要根据对象指针当前指向的对象是基类对象还是派生类对象,来决定当前
 3 //调用的成员函数是基类的成员函数还是派生类的成员函数
 4 //下面是例子
 5 #include<iostream.h>
 6 
 7 class A{
 8     public:
 9         A(){}
10         ~A(){}
11         virtual void f1()const{
12             cout<<"基类成员函数f1()"<<endl;
13         }
14         void f2()const{
15             cout<<"基类成员函数f2()"<<endl;
16         }
17 };
18 
19 class B:public A{
20     public:
21         B(){}
22         ~B(){}
23         virtual void f1()const{
24             cout<<"派生类成员函数f1()"<<endl;
25         }
26         void f2()const{
27             cout<<"派生类成员函数f2()"<<endl;
28         }
29 };
30 
31 int main(){
32     A *pa;
33 
34     A myA;
35     B myB;
36 
37     pa=&myA;
38     pa->f1();
39     pa->f2();
40     
41     pa=&myB;
42     pa->f1();
43     pa->f2();
44 
45 
46     return 0;
47 }

猜你喜欢

转载自www.cnblogs.com/Tobi/p/9250713.html