• inheritance,菱形继承, 虚继承,virtual



    //菱形继承   |||||||   虚继承
    #include <iostream>
    using namespace std;

    class R
    {
        int r;
    public:
        R(int i=0):r(i)
        {}
        virtual void printOn()
        {
            cout<<"r = "<<r<<endl;
        }
    };

    class B:public virtual R
    {
        
        int b;
    public:
        B(int i,int j):R(i),b(i){}
        void printOn()
        {
            cout<<"b = "<<b<<endl;
            R::printOn();
        }
    };

    class C:public virtual R
    {
        int c;
    public:
        C(int i,int j):R(i),c(j){}
        void printOn()
        {
            cout<<"c = "<<c<<endl;
            R::printOn();
        }
    };

    class D:public B,public C
    {
        int d;
    public:
        D(int i ,int j,int k,int y):R(j),B(i,j),C(j,k),d(y)
        {
            
        }
        void printOn()
        {
            cout<<"d = "<<d<<endl;
            R::printOn();
            B::printOn();
            C::printOn();

        }
        void f()
        {
            cout<<"d = "<<d<<endl;
            R::printOn();
            C::printOn();
        }
    };

    int main()
    {
        D  dd(2,3,4,5);
        C  cc(9,9);
        B  bb(6,5);
        R * rr;
           dd.printOn();
        cout<<"==="<<endl;
        cc.printOn();
        bb.printOn();
        rr=&cc;
        rr->printOn();        
            
        return 0;
    }
  • 相关阅读:
    浅谈Sass与Less区别、优缺点
    混合开发的几个框架
    什么是Node.js?
    初入AngularJS
    jQuery的效果函数
    jQuery的一些选择器
    CSS3新增的属性有哪些:
    linux 新建用户、用户组 以及为新用户分配权限
    linux各个文件作用
    Linux CentOS6.5 命令修改网络配置
  • 原文地址:https://www.cnblogs.com/wsq724439564/p/3258149.html
Copyright © 2020-2023  润新知