Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
SirAsgard
1 / 1 / 0
Регистрация: 20.04.2012
Сообщений: 46
24.11.2012, 17:22     Множественное наследование #1
По этой схеме нужно сделать множественное наследование.

Вот код:
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. Не могу разобраться, что именно. Буду благодарен за помощь.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2012, 17:22     Множественное наследование
Посмотрите здесь:

множественное наследование C++
C++ Множественное наследование
Множественное наследование C++
Множественное наследование C++
Множественное наследование C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
go
Эксперт C++
3582 / 1362 / 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
Как я понял.
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
24.11.2012, 17:27     Множественное наследование #3
тут не наследование, тут просто неправильно конструктор вызывается.
конструктор D3(int x, int y) - 2 параметра его вызов temp(100,200,300,400,500); - 5 параметров
что за чёрт?
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 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.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
24.11.2012, 17:30     Множественное наследование #5
32 - конструктор В2 принимает 1 аргумент, а вы передаете 2
39 - конструктор D2 принимает 5 аргументов, а вы передаете 1
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
24.11.2012, 17:33     Множественное наследование #6
строка 32: вызов конструктора B2(i,j) с двумя параметрами, а его объявление в строке 18 B2(int y) принимает один параметр.
что за чёрт№2?
опаздал.
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;};
еще нет. В чем именно?
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
24.11.2012, 17:40     Множественное наследование #8
У D2 есть конструктор только с 5 параметрами, а ты вызываешь с 1.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2012, 17:55     Множественное наследование
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
SirAsgard
1 / 1 / 0
Регистрация: 20.04.2012
Сообщений: 46
24.11.2012, 17:55  [ТС]     Множественное наследование #9
Спасибо. Разобрался.
Yandex
Объявления
24.11.2012, 17:55     Множественное наследование
Ответ Создать тему
Опции темы

Текущее время: 21:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru