标签:IV void end 编译 http clu ios turn oid
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 }
标签:IV void end 编译 http clu ios turn oid
原文地址:https://www.cnblogs.com/Tobi/p/9250713.html