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

Myth丶恋晨 2021-11-19 13:14 459阅读 0赞

//菱形继承 ||||||| 虚继承
#include
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
{

  1. 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)
{

  1. \}
  2. void printOn()
  3. \{
  4. cout<<"d = "<<d<<endl;
  5. R::printOn();
  6. B::printOn();
  7. C::printOn();
  8. \}
  9. void f()
  10. \{
  11. cout<<"d = "<<d<<endl;
  12. R::printOn();
  13. C::printOn();
  14. \}

};

int main()
{
D dd(2,3,4,5);
C cc(9,9);
B bb(6,5);
R * rr;
dd.printOn();
cout<<”===”<printOn();

  1. return 0;

}

转载于:https://www.cnblogs.com/wsq724439564/p/3258149.html

发表评论

表情:
评论列表 (有 0 条评论,459人围观)

还没有评论,来说两句吧...

相关阅读

    相关 C++:53---菱形继承继承

    一、菱形继承 在介绍虚继承之前介绍一下菱形继承 概念:A作为基类,B和C都继承与A。最后一个类D又继承于B和C,这样形式的继承称为菱形继承 菱形继承的缺