#include <iostream>
using namespace std;
class B1{
int a;
public:
B1(int x): a(x) {}
void show() { cout <<"B1= "<< a << "\n"; }
};
class B2{
int b;
public:
B2(int x) { b=x; }
void show() { cout << "B2= "<< b << "\n";}
};
class D1: public B1, public B2{
int c;
public:
D1(int x, int y, int l) : c(x), B1(y), B2(l) {};
void show() { cout <<"D1= "<< c << "\n"; B1::show(); B2::show();}
};
class D2 {
int d;
public:
D2(int x): d(x) {};
void show() { cout <<"D2= "<< d << "\n"; }
};
class D3: public D1, public D2 {
int e;
public:
D3(int a, int b, int c, int d, int x):e(x),D1(a,b,c),D2(d) {}
void show() {cout <<"D3= "<< e << "\n"; D1::show(); D2::show();}
};
class D4: public D3 {
int f;
public:
D4(int x, int i, int p, int q, int e, int k): f(x), D3(i,p,q,e,k) {};
void show() { cout <<"D4= "<< f << "\n"; D3::show() ;}
};
int main() {
D2 temp(100);
D4 temp1(1,2,3,4,5,6);
cout << "D2 temp(100,200,300,400,500);\n";
cout << "D4 temp1(1,2,3,4,5);\n";
cout<< "\nСледуя иерархии класса D4\n";
temp1.show();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgQjF7CiAgICBpbnQgYTsKcHVibGljOgogICAgQjEoaW50IHgpOiBhKHgpIHt9CiAgICB2b2lkIHNob3coKSB7IGNvdXQgPDwiQjE9ICI8PCBhIDw8ICJcbiI7IH0KfTsKCmNsYXNzIEIyewogICAgaW50IGI7CnB1YmxpYzoKICAgIEIyKGludCB4KSB7IGI9eDsgfQogICAgdm9pZCBzaG93KCkgeyBjb3V0IDw8ICJCMj0gIjw8IGIgPDwgIlxuIjt9Cn07CgpjbGFzcyBEMTogcHVibGljIEIxLCBwdWJsaWMgQjJ7CiAgICBpbnQgYzsKcHVibGljOgogICAgRDEoaW50IHgsIGludCB5LCBpbnQgbCkgOiBjKHgpLCBCMSh5KSwgQjIobCkge307CiAgICB2b2lkIHNob3coKSB7IGNvdXQgPDwiRDE9ICI8PCBjIDw8ICJcbiI7IEIxOjpzaG93KCk7IEIyOjpzaG93KCk7fQp9OwoKY2xhc3MgRDIgewogICAgaW50IGQ7CnB1YmxpYzoKICAgIEQyKGludCB4KTogZCh4KSB7fTsKICAgIHZvaWQgc2hvdygpIHsgY291dCA8PCJEMj0gIjw8IGQgPDwgIlxuIjsgfQp9OwoKY2xhc3MgRDM6IHB1YmxpYyBEMSwgcHVibGljIEQyIHsKICAgIGludCBlOwpwdWJsaWM6CiAgICBEMyhpbnQgYSwgaW50IGIsIGludCBjLCBpbnQgZCwgaW50IHgpOmUoeCksRDEoYSxiLGMpLEQyKGQpIHt9CiAgICB2b2lkIHNob3coKSB7Y291dCA8PCJEMz0gIjw8IGUgPDwgIlxuIjsgRDE6OnNob3coKTsgRDI6OnNob3coKTt9Cn07CmNsYXNzIEQ0OiBwdWJsaWMgRDMgewogICAgaW50IGY7CnB1YmxpYzoKICAgIEQ0KGludCB4LCBpbnQgaSwgaW50IHAsIGludCBxLCBpbnQgZSwgaW50IGspOiBmKHgpLCBEMyhpLHAscSxlLGspIHt9OwogICAgdm9pZCBzaG93KCkgeyBjb3V0IDw8IkQ0PSAiPDwgZiA8PCAiXG4iOyBEMzo6c2hvdygpIDt9Cn07CgppbnQgbWFpbigpIHsKICAgIEQyIHRlbXAoMTAwKTsKICAgIEQ0IHRlbXAxKDEsMiwzLDQsNSw2KTsKICAgIGNvdXQgPDwgIkQyIHRlbXAoMTAwLDIwMCwzMDAsNDAwLDUwMCk7XG4iOwogICAgY291dCA8PCAiRDQgdGVtcDEoMSwyLDMsNCw1KTtcbiI7CiAgICBjb3V0PDwgIlxu0KHQu9C10LTRg9GPINC40LXRgNCw0YDRhdC40Lgg0LrQu9Cw0YHRgdCwIEQ0XG4iOwogICAgdGVtcDEuc2hvdygpOwp9Cg==