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

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

Войти
Регистрация
Восстановить пароль
 
case
7 / 7 / 2
Регистрация: 29.09.2010
Сообщений: 32
#1

виртуальные классы - C++

12.11.2011, 17:27. Просмотров 562. Ответов 2
Метки нет (Все метки)

Не могу понять в чем ошибка, помогите исправить.

Построить иерархию классов согласно схеме наследования. Каждый класс должен содержать конструктор инциализации, копирование,
деструктор, функцию для вывода значений. Функция main должна иллюстрировать иерархию наследования.

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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include <conio.h>
 
using namespace std;
 
class B1 {
    int a;
public:
    B1(int x) {a=x;}
    B1(B1 & b1) {a=b1.a;}
    ~B1() {}
    void show_B1() {cout<<"B1= "<<a<<endl;}
};
 
class B2 {
    int aa;
public:
    B2(int x) {aa=x;}
    B2(B2 & b2) {aa=b2.aa;}
    ~B2() {}
    void show_B2() {cout<<"B2= "<<aa<<endl;}
};
 
 
class D1: virtual public B1{
    int b;
public:
    D1(int x, int y) : B1(y) {b=x;}
    D1(D1 & d) {b=d.b;}
    ~D1() {}
    void show_D1() { cout<<"D1= "<<b<<endl; show_B1();}
};
 
class D2: virtual private B1{
    int c;
public:
    D2(int x, int y): B1(y) {c=x;}
    D2(D2 & d) {c=d.c;}
    ~D2() {}
    void show_D2() {cout<<"D2= "<<c<<endl; show_B1();}
};
 
 
class D4: public B2, D1, D2 {
    int e;
public:
    D4(int x, int y,int z, int i, int j) : B2(y), D1(z,i), D2(i,j)  {e=x;}
    D4(D4 & d) {e=d.e;}
    ~D4() {}
    void show_D4() {cout<<"D4= "<<e<<endl; show_B2(); show_D1(); show_D2(); }
};
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    //clrscr();
    
    D4 temp(1,2,3,4,5);
    cout<<"D4 temp(1,2,3,4,5);\n";
    
    cout<<"\n class hierarchy D4 \n";
    temp.show_D4();
    getch();
 
    return 0;
}
Миниатюры
виртуальные классы  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2011, 17:27     виртуальные классы
Посмотрите здесь:

виртуальные базовые классы - C++
класс на вершине иерархии определяет конструктор с параметрами. какие требования предъявляются к иерархии наследования?? ...

Виртуальные функции и классы - C++
Всем привет. Подскажите, пожалуйста, часть задания: Есть класс свет, в нем подклассы лампа, фонарь и прожектор. Само задание я выполнил, но...

Виртуальные функции. Абстрактные классы. - C++
Есть у меня абстрактный класс class DataManager { protected: Configuration configuration; public:...

Абстрактные классы, виртуальные функции - C++
Собственно сабж. нужна достаточно простая(не важно что выполняющая) программа с использованием абстрактных классов и виртуальных функций,...

Абстрактные классы. Виртуальные функции - C++
Помогите, пожалуйста. Класс : место - область - город - мегаполис 1. Определить иерархию системы, которая заключается в...

Виртуальные абстрактные базовые классы - C++
Привет всем!:-) Вчера столкнулся со следующей проблемой: компилятор ругается на чистый виртуальный деструктор. Собственно листинги: ...

Виртуальные базовые классы/закрытое наследование - C++
Хотел уточнить правильно ли я понял материал. Если я породил два класса через виртуальное, открытое наследование от одного базового класса,...

Чисто виртуальные классы. Модификатор const - C++
Приветствую всех! Известно, что чисто виртуальный (абстрактный) класс можно получить class A { public: virtual void test()=0; };...

Абстрактные классы. Виртуальные функции. Задача - C++
ПОМОГИТЕ ПОЖАЛУЙСТА РЕШИТЬ ЗАДАЧУ: #include&lt;stdio.h&gt; #include&lt;conio.h&gt; #include&lt;locale.h&gt; #include&lt;time.h&gt; #include&lt;stdlib.h&gt; ...

Абстрактные классы и чистые виртуальные функции - C++
У Р. Лафоре написано: И вот, есть такой пример из его книги: #include &lt;iostream&gt; #include &quot;msoftcon.h&quot; using namespace std; ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Xind
275 / 148 / 7
Регистрация: 05.11.2011
Сообщений: 425
Записей в блоге: 1
12.11.2011, 18:30     виртуальные классы #2
case, В какой строчке ошибка?

Добавлено через 6 минут
Для демонстрации в главной функции по заданию, еще нужно в каждом деструкторе сделать вывод сообщения, что данный объект разрушен. Сразу будет виден ход выполнения.
case
7 / 7 / 2
Регистрация: 29.09.2010
Сообщений: 32
12.11.2011, 18:55  [ТС]     виртуальные классы #3
ошибка заключается в том, что я не могу передать параметр виртуальном класса, то есть программа комбилюеться, но вместо того выводит очень малое число или очень большое, в классе B1.
Ответ Создать тему
Опции темы

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