C++嵌套类的继承及纯虚函数实现整理

嵌套类,纯虚函数,类继承,函数实现,运行时多态,感谢网友帮忙,虽然很简单,希望能帮到初学者及不熟悉语法的人!从简单开始~~
A类中嵌套B类,C类实现对B类的继承,并实现B类中的纯虚函数,主函数进行调用,实现多态。
该代码编译通过
#include "stdio.h"
 
class  A                                 //A类中嵌套B类         因为B中有纯虚函数virtual void operate()=0;,所以A,B都是抽象类
{
public :
     class  B
     {
         public :
             virtual  void  operate()=0;   //嵌套类中存在纯虚函数
     };
         
public :     
     B* GetB() {       
         return  m_b;
     }
     
     void  SetB(B* b) {
         m_b = b;
     }
     
private :
     B* m_b;
};
 
class  C :  public  A::B                  //类C可以直接继承嵌套类  A::B
{
public :
     void  operate();                   //这里继承父类的operate不用写成void A::B::operate(); 当时不清楚,所以用错
};  
 
void  C::operate()                     //operate实现部分,如果不实现,C类也是抽象类
{   
     printf ( "C 实现虚函数 operate()后的输出\n" );
}
 
int  main()
{
     A a;
     a.SetB( new  C());                  //new C()获取子类C*对象,SetB()内部转化为B*对象
 
     A::B *b = a.GetB();
     b->operate();                    //程序运行时多态性,选择C类operate()   也可以多个类继承A::B,
 
     return  0;                        //比如D类实现operate()函数试验,a.SetB(new D()); 则运行时多态会选择D类的operate()
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值