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

Множественное наследование, виртуальные функции... - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Динамические массивы http://www.cyberforum.ru/cpp-beginners/thread399646.html
Прошу прощение за наглость и понимаю что мало кто так поможет, но все таки напишите как создавать и использовать динамические массивы, желательно с комментариями, как для туп... как для меня задание выглядет так если надо дан динамический массив с эелементами, сначало надо поставить нулевые элементы потом отрицательные а потом положительные примного благодарен сколько не видел ссылок в инете...
C++ Работа со структурами Сегодня преподаватель огорошил известием что к завтрашнему дню надо сдать лабораторную по Работе со структурами. Было бы хорошо. НО он хочет чтобы мы опирались на знания школы (колледжа). Где такие школы вообще есть. Но не суть. Сижу 2 часа понял как ввести данные. Но как ЭТО будет вытаскивать определенные группы, для меня за 6 часов понять нереально. Прелюдия кончилась. В программу должны... http://www.cyberforum.ru/cpp-beginners/thread399644.html
C++ Точка, прямоугольник, круг!
Здравствуйте, ребята! Такое вот задание: 1. Класс "Точка на плоскости": координаты. 2. Производные: "круг"(радиус) и "прямоугольник"(координаты противоположного угла). Во всех классах определить функцию move - для движения объекта на 1 позицию по x и по y. 3. В производных классах перегрузить операции "++" - как увеличение размера объекта на 1, "<" - за размером и С=А+В - объект С -...
Составление программ вычисления суммы C++
Дано натуральное число N>0. Вычислить S=1*2+2*3*4+...+N*(N+1)*(N+2)...2N Тест: N=3, S=386. Добавлено через 24 минуты borlans c++ for dos
C++ Тестовые примеры в линейной программе http://www.cyberforum.ru/cpp-beginners/thread399624.html
задали написать программу расчета по двум формулам с тестовыми прмерами #include "iostream.h" #include "conio.h" #include "math.h" #define pi 3.14 int main() { int a; double z1,z2; cout<<"Vvedite A:";
C++ генератор кодов народ можно ли создать генератор кодов? подробнее

Показать сообщение отдельно
AlexanderKr
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 7

Множественное наследование, виртуальные функции... - C++

05.12.2011, 20:27. Просмотров 463. Ответов 1
Метки (Все метки)

Помогите пожалуйста разобраться...
1. В классах есть переопределенные виртуальные функции класса base. Как сделать так, что бы я мог вызывать эти функции. Например вызвать их из класса name, а не только из publication.

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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <fstream>
#include <string.h>
using namespace std;
#define SIZE 256
 
class base {
public: 
virtual void print()=0; 
virtual void out_file()=0;
};
//-------------------------------------------------------
class name: public base {
public:
char *strname;
 
name(char *sname) {
strname=new char[256];
strname=sname;
}
 
~name() {
cout<<" 'имя' уничтожили"<<endl;
}
 
void print() {
cout<<"Название публикации: "<<strname<<endl;
 
}
 
void out_file() {
ofstream stream("result.txt", ios::out | ios::app);
stream<<strname<<" ";
stream.close();
}
};
//-------------------------------------------------------
class type: public base {
public:
char *strtype;
 
type(char *stype) {
strtype=new char[256];
strtype=stype;
}
 
~type() {
cout<<" 'тип' уничтожен "<<endl;
}
 
void print() {
cout<<"Тип публикации: "<<strtype<<endl;
 
}
 
void out_file() {
ofstream stream("result.txt", ios::out | ios::app);
stream<<strtype<<" ";
stream.close();
}
};
 
//-------------------------------------------------------
 
class publication: public name, public type
{
public:
 
char *p_name, *p_type;
int p_np, p_freq, p_nc;
double p_yc;
 
publication(char *name, char *type, int numofpages, int freq, int numofcopies):name(name),type(type)
{
p_name=new char[256];
p_name=name;
p_type=new char[256];
p_type=type;
p_np=numofpages;
p_freq=freq;
p_nc=numofcopies;
cout<<"Объект 'публикация' создан всё гут"<<endl<<"------------------------"<<endl;
}
 
~publication() {
cout<<" 'публикации' стерлись "<<endl;
}
 
void print(){
cout<<"Название публикации '"<<p_name<<"' "<<endl;
cout<<"Тип публикации '"<<p_type<<"'"<<endl;
cout<<"Кол-во страниц: "<<p_np<<endl;
cout<<"Частота выпуска: каждые "<<p_freq<<" дней(я)"<<endl;
cout<<"Тираж: "<<p_nc<<endl;
cout<<"Копий в год: "<<p_yc<<endl<<"------------------------"<<endl;
}
 
void out_file() {
ofstream stream("publications.txt", ios::out | ios::app);
stream<<"Название публикации '"<<p_name<<"' "<<endl;
stream<<"Тип публикации '"<<p_type<<"'"<<endl;
stream<<"Кол-во страниц: "<<p_np<<endl;
stream<<"Частота выпуска: каждые "<<p_freq<<" дней(я)"<<endl;
stream<<"Тираж: "<<p_nc<<endl;
stream<<"Копий в год: "<<p_yc<<endl<<endl;
stream.close();
}
 
friend void Run(publication *);
 
};
void run (publication *p){
p->p_yc=(365/(p->p_freq))*(p->p_nc);
}
//---------------------------------------------
void main (void)
{ 
setlocale(0, "rus");
int numofpages, freq, numofcopies;
char *name, *type;
name=new char[256];
type=new char[256];
cout<<"Введите название: "<<endl;
cin>>name;
cout<<"Введите тип: "<<endl;
cin>>type;
 
try{
cout<<"Введите кол-во страниц: "<<endl;
cin>>numofpages;
if(numofpages<0) throw 1;
}
 
catch(...) {
cout<<"Ошибка!Нужно вводить номер!\n";
ofstream stream("publications.txt", ios::out | ios::app);
stream<<"Ошибка"<<endl<<endl;
exit(0);
 
}
 
cout<<"Введите частоту выпуска: "<<endl;
cin>>freq;
cout<<"Введите тираж: "<<endl;
cin>>numofcopies;
 
 
 
publication pubobj(name,type,numofpages,freq,numofcopies); 
run(&pubobj);
pubobj.print();
pubobj.out_file();
 
 
getch();
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru