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

来源:互联网 发布:linux下漏洞扫描工具 编辑:程序博客网 时间:2024/05/23 02:03
嵌套类,纯虚函数,类继承,函数实现,运行时多态,感谢网友帮忙,虽然很简单,希望能帮到初学者及不熟悉语法的人!从简单开始~~
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 0
原创粉丝点击