Программирование C++. Иерархия классов
Всем привет. Не могу понять в чем загвоздка. Задание: Необходимо построить иерархию классов согласно схеме наследования, приведенной в варианте задания.
Каждый класс должен содержать инициализирующий конструктор и функцию show для вывода значений. Функция main должна иллюстрировать иерархию наследования. Скрин иерархии тоже скинул.
Пишу код, а он не читается, код тоже прикреплю.
#include <iostream>
#include <stdlib.h>
#include <conio.h>
#include <locale.h>
using namespace std;
class B1{
int a;
public:
B1(int x) { a=x; }
void show_B1() { cout <<"B1= "<< a << "\n"; }
};
class B2{
int b;
public:
B2(int x) { b=x; }
void show_B2() { cout << "B2= "<<b << "\n";}
};
class D1: public B1, public B2{
int c;
public:
D1(int x, int y, int l) : B1(y), B2(l) { c=x;};
void show_D1() { cout <<"D1= "<< c << "\n"; show_B1(); show_B2();}
};
class D2 {
int d;
public:
D2(int x) { d=x;};
void show_D2() { cout <<"D2= "<< d << "\n";
};
class D3: public D2{
int e;
public:
B3(int x) { e=x;}
void show_D3() {cout <<"D3= "<< e << "\n"; show_D2();}
};
class D4: public D3 {
int f;
public:
D4(int x, int i, int p, int q, int e, int k) : D3(i,p,e,k;}
void show_D4() { cout <<"D4= "<< f << "\n"; show_D3() ;}
};
main() {
setlocale(LC_ALL,"Russian");
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_D4();
getch();
return 0;
}
Кто может, помогите и напишите правильный код, очень выручите.
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
#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();
}
Просто немного почитать учебник, исправить - и все готово...