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

Нужен совет - C++

Восстановить пароль Регистрация
 
Spark.2011
Сообщений: n/a
06.12.2011, 18:12     Нужен совет #1
Вообщем написал программу, вкратце : сущ-ет класс человек, а классы менеджер, рабочий и ученый наследуют его св-ва. Нужно обратиться к закрытым данным private от класса менеджера. В теории знаю как это сделать, но на практике не получается. Для этого нужно объявить класс менеджер другом - friend

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
#include <iostream> 
#include <string> 
using namespace std; 
/////////////////////////////////////////////////////////// 
class man 
 
{ 
private: 
string school; 
string degree; 
 
public: 
 
void getedu ( ) 
{ 
 
cout << " Введите название учебного заведения "; 
cout << " (КарГТУ, КарГУ, КарМУ, КЭУ): "; 
cin >> school; 
cout << " Введите уровень образования\n"; 
cout << " (неполное высшее, бакалавр, магистр, кандидат наук): "; 
cin >> degree; 
} 
void putedu ( ) const 
{ 
cout << "\n Учебное заведение: " << school; 
cout << "\n Степень: " << degree; 
} 
 
 
}; 
/////////////////////////////////////////////////////////// 
class employee 
{ 
private: 
string name; 
unsigned long number; 
public: 
void getdata ( ) 
{ 
cout << "\n Введите фамилию: "; cin >> name; 
cout << " Введите номер: "; cin >> number; 
 
} 
void putdata ( ) const 
{ 
cout << "\n Фамилия: " << name; 
cout << "\n Номер: " << number; 
} 
 
}; 
/////////////////////////////////////////////////////////// 
class manager 
{ 
private: 
string title; 
double dues; 
employee emp; 
man stu; 
public: 
void getdata ( ) 
{ 
emp.getdata ( ); 
cout << " Введите должность: "; cin >> title; 
cout << " Введите сумму взносов в гольф-клуб: "; cin >> dues; 
 
stu.getedu ( ); 
} 
void putdata ( ) const 
{ 
emp.putdata ( ); 
cout << "\n Должность: " << title; 
cout << "\n Сумма взносов в гольф-клуб: " << dues; 
stu.putedu ( ); 
} 
}; 
/////////////////////////////////////////////////////////// 
class scientist 
{ 
private: 
int pubs; 
employee emp; 
man stu; 
public: 
void getdata ( ) 
{ 
emp.getdata ( ); 
cout << " Введите количество публикаций: "; cin >> pubs; 
stu.getedu ( ); 
} 
void putdata ( ) const 
{ 
emp.putdata ( ); 
cout << "\n Количество публикаций: " << pubs; 
stu.putedu ( ); 
} 
}; 
/////////////////////////////////////////////////////////// 
class laborer 
{ 
private: 
employee emp; 
public: 
void getdata ( ) 
{ emp.getdata ( ); } 
void putdata ( ) const 
{ emp.putdata ( ); } 
}; 
/////////////////////////////////////////////////////////// 
int main ( ) 
{ 
setlocale (0, "rus"); 
manager m1; 
scientist s1; 
laborer l1; 
 
// введем информацию о нескольких сотрудниках 
cout << endl; 
cout << "\nВвод информации о первом менеджере"; 
m1.getdata ( ); 
 
cout << "\nВвод информации о первом ученом"; 
s1.getdata ( ); 
 
cout << "\nВвод информации о первом рабочем"; 
l1.getdata ( ); 
 
// выведем полученную информацию на экран 
cout << "\nИнформация о первом менеджере"; 
m1.putdata ( ); 
 
cout << "\nИнформация о первом ученом"; 
s1.putdata ( ); 
 
cout << "\nИнформация о первом рабочем"; 
l1.putdata ( ); 
 
cout << endl; 
 
system("pause"); 
}
}
 Комментарий модератора 
Используйте теги форматирования кода!


P.S.: пробовал по разному. Мне без разницы что объявлять другом.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2011, 18:12     Нужен совет
Посмотрите здесь:

C++ нужен совет!!!
Нужен совет! C++
C++ нужен совет по выводу
C++ Нужен совет
Нужен совет! C++
C++ Нужен совет
Нужен совет! C++
C++ Нужен совет

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
bretba
 Аватар для bretba
63 / 58 / 5
Регистрация: 24.07.2011
Сообщений: 343
07.12.2011, 00:59     Нужен совет #2
не очень понятно что именно ты хочешь заимствовать от класса человек?
Spark.2011
Сообщений: n/a
07.12.2011, 14:12     Нужен совет #3
Цитата Сообщение от bretba Посмотреть сообщение
не очень понятно что именно ты хочешь заимствовать от класса человек?
Например cout << "\n Степень: " << degree; для класса мэнеджер
Yandex
Объявления
07.12.2011, 14:12     Нужен совет
Ответ Создать тему
Опции темы

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