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

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

Восстановить пароль Регистрация
 
case
7 / 7 / 2
Регистрация: 29.09.2010
Сообщений: 32
12.11.2011, 17:27     виртуальные классы #1
Не могу понять в чем ошибка, помогите исправить.

Построить иерархию классов согласно схеме наследования. Каждый класс должен содержать конструктор инциализации, копирование,
деструктор, функцию для вывода значений. Функция 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++ Чисто виртуальные классы. Модификатор const
C++ Абстрактные классы, виртуальные функции
C++ Виртуальные абстрактные базовые классы
C++ виртуальные базовые классы
Виртуальные функции и классы C++
C++ Абстрактные классы и чистые виртуальные функции
C++ Абстрактные классы. Виртуальные функции

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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.
Yandex
Объявления
12.11.2011, 18:55     виртуальные классы
Ответ Создать тему
Опции темы

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