私はダイヤモンドの問題を克服していました。さまざまなシナリオで考えられました。そして、これは私が取り組んでいるものの一つです。ダイヤモンドの問題
#include <iostream>
using namespace std;
class MainBase{
public:
int mainbase;
MainBase(int i):mainbase(i){}
void geta()
{
cout<<"mainbase"<<mainbase<<endl;
}
};
class Derived1: public MainBase{
public:
int derived1;
int mainbase;
Derived1(int i):MainBase(i),derived1(i) {mainbase = 1;}
public:
void getderived1()
{
cout<<"derived1"<<derived1<<endl;
}
};
class Derived2: public MainBase{
public:
int derived2;
int mainbase;
Derived2(int i):MainBase(i),derived2(i){mainbase = 2;}
public:
void getderived2()
{
cout<<"derived2"<<derived2<<endl;
}
};
class Diamond: public Derived1, public Derived2{
public:
int diamond;
int mainbase;
Diamond(int i,int j, int x):Derived1(j),Derived2(x),diamond(i){mainbase=3;}
public:
void getdiamond()
{
cout<<"diamond"<<diamond<<endl;
}
};
int main()
{
Diamond d(4,5,6);
// cout<< d.MainBase::mainbase;
cout<<"tested"<<endl;
cout<<d.mainbase;
cout<<d.Derived2::mainbase<<endl;
cout<<d.Derived1::mainbase<<endl;
/*cout<<d.Derived2::MainBase::mainbase<<endl;
cout<<d.Derived1::MainBase::mainbase<<endl;*/
}
MainBaseクラスのmainbase変数にアクセスするにはどうすればいいですか?任意の入力。
、コードをしてください修正してください。それをすべて選択して010101をヒットしてください。 – jkeys
実際、見ることは悪夢です。 :( –
ダイアモンドの問題: "複数の継承と知識構成を持つオブジェクト指向プログラミング言語では、ダイアモンド問題は2つのクラスBとCがAから継承し、クラスDがBとCの両方から継承するときに生じるあいまいさです。 DのメソッドはAで定義されたメソッドを呼び出し(メソッドをオーバーライドしません)、BとCはそのメソッドを別の方法でオーバーライドしてから、どのクラスからBまたはCを継承しますか? "source:http:// en .wikipedia.org/wiki/Diamond_problem – Adriaan