#include<iostream>/继承和多态

using namespace std;

class A{

public:

q();

virtual w();                                      //virtual是虚函数的标志这里我们用虚函数来实现多态|

};                                                                                                                                                         //|

A::q(){cout<<“qqqqqa”<<endl;};                                                                                                   //|  所以B中的w函数覆盖了A

A::w(){cout<<“wwwwwa”<<endl;};                                                                                               //|  中的w函数,完全覆盖以至于B

                                                                                                                                                           //|  中的w函数可以视为不存在了

class B:public A{                //b公有public继承了a                                                                       //|  

public:                                                                                                                                               //|

q();                        //b和a有同名的两个函数,函数名相同但是函数意义不同                     //|

w();                  //其中的w函数用了虚函数来实现多态——————————————–|

};

B::q(){cout<<“qqqqqqb”<<endl;};

B::w(){cout<<“wwwwwwb”<<endl;};

int main(){

B b;

A a;

A*p=&a;

p->q();                    还是输出基类中的

p->w();                         /肯定是输出基类中的  基类指针指向基类

p=&b;                 

p->q();                      ///输出

p->w();

return 0;

}


版权声明:本文为strive_stive原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/strive_stive/article/details/46550039