Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
SirAsgard
1 / 1 / 0
Регистрация: 20.04.2012
Сообщений: 46
#1

Множественное наследование - C++

24.11.2012, 17:22. Просмотров 460. Ответов 8
Метки нет (Все метки)

По этой нужно сделать множественное наследование.

Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;
 
class B1{
 int a;
public:
 B1() { };
 B1(int x) { a=x; }
 void show_B1() { cout <<"B1=   "<< a << "\n"; }
};
 
class B2{
 int b;
public:
 B2() { };
 B2(int y) { b=y; }
 void show_B2() { cout <<"B2=   "<< b << "\n"; }
};
 
class D1: public B1 {
 int c;
public:
 D1(int x, int z) : B1(z) { c=x;};
 void show_D1() { cout <<"D1=  "<< c << "\n"; show_B1();}
};
 
class D2: private D1, public B2 {
 int f;
public:
 D2(int x, int y, int z, int i, int j) : D1(y,z), B2(i,j) { f=x;}
 void show_D2() { cout <<"D2=  "<< f << "\n"; show_D1(); show_B2();}
};
 
class D3: public D2{
 int e;
public:
 D3(int x, int y) : D2(y) { e=x;};
 void show_D3() { cout <<"D3=  "<< e << "\n"; show_D2();}
};
 
int main() {
D3 temp(100,200,300,400,500);
cout << "D3 temp(100,200,300,400,500);\n";
cout<< "\Иерархия* D3: \n";
temp.show_D3();
getch();
return 0;
}
Ошибка в множественном наследование + еще в конце при D3 temp. Не могу разобраться, что именно. Буду благодарен за помощь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2012, 17:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Множественное наследование (C++):

множественное наследование - C++
разработайте алгоритм и создайте программы с применением множественного наследования. При выполнении данного задания необходимо создать не...

Множественное наследование в С++ - C++
Столкнулся с такой проблемой: class D{ ... public: ... void setD(); ... }; class Dd : public D{ ...

множественное наследование - C++
Почему не компилируется код? #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; using namespace std; class...

Множественное наследование - C++
7 задание Сделайте пожалуйста, большое спасибо! :good:

Множественное наследование - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;string.h&gt; #include &lt;conio.h&gt; using namespace std; class ship { ...

Множественное наследование - C++
Добрый день. У меня имеется базовый класс A. У этого класса есть несколько наследников. Есть еще один класс B, который является...

8
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
24.11.2012, 17:27 #2
Цитата Сообщение от SirAsgard Посмотреть сообщение
class D2: private D1, public B2 {
Код
class D2: private B2, private D1
Как я понял.
1
Kuzia domovenok
2050 / 1895 / 173
Регистрация: 25.03.2012
Сообщений: 6,516
Записей в блоге: 1
24.11.2012, 17:27 #3
тут не наследование, тут просто неправильно конструктор вызывается.
конструктор D3(int x, int y) - 2 параметра его вызов temp(100,200,300,400,500); - 5 параметров
что за чёрт?
0
gray_fox
What a waste!
1522 / 1227 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
24.11.2012, 17:30 #4
Цитата Сообщение от SirAsgard Посмотреть сообщение
D2(int x, int y, int z, int i, int j) : D1(y,z), B2(i,j) { f=x;}
У В2 нет такого конструктора.
Цитата Сообщение от SirAsgard Посмотреть сообщение
D3(int x, int y) : D2(y) { e=x;};
Аналогично для D2.
Цитата Сообщение от SirAsgard Посмотреть сообщение
D3 temp(100,200,300,400,500);
Аналогично для D3.
1
I.M.
566 / 549 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
24.11.2012, 17:30 #5
32 - конструктор В2 принимает 1 аргумент, а вы передаете 2
39 - конструктор D2 принимает 5 аргументов, а вы передаете 1
1
Kuzia domovenok
2050 / 1895 / 173
Регистрация: 25.03.2012
Сообщений: 6,516
Записей в блоге: 1
24.11.2012, 17:33 #6
строка 32: вызов конструктора B2(i,j) с двумя параметрами, а его объявление в строке 18 B2(int y) принимает один параметр.
что за чёрт№2?
опаздал.
1
SirAsgard
1 / 1 / 0
Регистрация: 20.04.2012
Сообщений: 46
24.11.2012, 17:37  [ТС] #7
С B2 и D3 разобрался, но вот с D2 в этой строке
C++
1
D3(int x, int y) : D2(y) { e=x;};
еще нет. В чем именно?
0
gray_fox
What a waste!
1522 / 1227 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
24.11.2012, 17:40 #8
У D2 есть конструктор только с 5 параметрами, а ты вызываешь с 1.
1
SirAsgard
1 / 1 / 0
Регистрация: 20.04.2012
Сообщений: 46
24.11.2012, 17:55  [ТС] #9
Спасибо. Разобрался.
0
24.11.2012, 17:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2012, 17:55
Привет! Вот еще темы с ответами:

Множественное наследование - C++
Задание Часть 1. Создать иерархию типов &quot;Точка&quot; и подчинённые ему &quot;Точка в двумерном пространстве&quot; и &quot;Точка в трёхмерном...

Множественное наследование - C++
Листинг: #include &lt;iostream&gt; using namespace std; class Person{private: string Fname,Sname,years;}; class Student{private:...

Множественное наследование - C++
Вычислите площадь и периметр прямоугольника, если известны его диагональ и одна из сторон.

множественное наследование - C++
Мечтаю реализовать такую иерархию human-&gt;employee-&gt;doctor в реализации doctor ругает конструктор. Ошибка 1 error C2062: type 'char'...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.