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

Наследование в классах - C++

Восстановить пароль Регистрация
 
ejjjikejjjik
0 / 0 / 0
Регистрация: 29.05.2011
Сообщений: 7
05.11.2011, 11:33     Наследование в классах #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
51
#include <stdlib.h>
#include <conio.h>
#include<math.h>
 
class B{
 int a;
public:
 B() { };
 B(int x) { a=x; }
 void show_B() { cout <<"B=  "<< a << "\n"; }
};
 
class D1 : public B {
 int b;
public:
D1() { };
 D1(int x, int y):  B(y) { b=x;};
 void show_D1() { cout <<"D1=  "<< b << "\n";show_B();}
};
 
class D2: protected B {
 int c;
public:
D2 () { };
 D2(int x,int y): B(y) { c=x;};
 void show_D2() { cout <<"D2=  "<< c << "\n";show_B();}
};
 
class D3: public D2 {
 int d;
public:
 D3(int x, int y, int z) : D2(y,z)  { d=x;}
 void show_D3() { cout << "D3=  "<<d << "\n"; show_B();show_D2();}
};
 
class D4: protected D1, private D3 {
 int e;
public:
 D4(int x, int y, int z, int i, int j) : D1(y,z,i,j)  { e=x;}
 void show_D4() { cout <<"D4=  "<< e << "\n"; show_D1,show_D3();}
};
 
main() {
clrscr();
D4 temp(100,200,300,400,500);
cout << "D4 temp(100,200,300,400,500);\n";
cout<< "\sleduya ierarhii klassa D4: \n";
temp.show_D4();
getch();
return 0;
}

показывает ошибки в классе В,не могу разобратьсяО_о
Миниатюры
Наследование в классах  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2011, 11:33     Наследование в классах
Посмотрите здесь:

C++ Наследование в классах
C++ Конструкторы в классах
C++ наследование в классах
Ссылки в классах C++
Зачем нужно private наследование в классах? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Евгений М.
1033 / 974 / 53
Регистрация: 28.02.2010
Сообщений: 2,817
Завершенные тесты: 2
05.11.2011, 11:45     Наследование в классах #2
У Вас какой компилятор?

Цитата Сообщение от ejjjikejjjik Посмотреть сообщение
показывает ошибки в классе В
Что компилятор выводит?

У Вас еще такая вешь. Родительский конструктор имеет 2 аргумента. Вы пытаетесь вызвать с 4-мя. Это в нескольких классах.
ejjjikejjjik
0 / 0 / 0
Регистрация: 29.05.2011
Сообщений: 7
05.11.2011, 18:26  [ТС]     Наследование в классах #3
у меня компилятор Borlandc,объясните поподробнее пожалуйстаничего не понимаю
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
05.11.2011, 18:35     Наследование в классах #4
Еще есть такая вещь, как "виртуальное наследование", оно применяется в ромбовидном наследовании, т.е. как раз твой случай. В данном случае оно как бы не обязательно, но я бы сделал. Советую погуглить в эту сторону.
Yandex
Объявления
05.11.2011, 18:35     Наследование в классах
Ответ Создать тему
Опции темы

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