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

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

Войти
Регистрация
Восстановить пароль
 
MasterYo
1 / 1 / 0
Регистрация: 07.07.2013
Сообщений: 39
#1

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

10.07.2013, 14:28. Просмотров 313. Ответов 4
Метки нет (Все метки)

Здравствуйте уважаемые форумчане!!! Вот написал код с наследованием, я бы хотел его усовершенствовать но не знаю как. Вот что именно я бы хотел добавить в этот код: Я написал ID ученика в этом случае 286. Я не могу сделать так чтобы Teacher (учитель) накричал (Cry) на этот ID(то есть на ученика который находится под ID = 286) и потом Dekan (декан) выгнал (kickout) бы этот ID (ученика). Помогите, если вам не трудно. Заранее большое спасибо.

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
#include <iostream>
#include <conio.h>
using namespace std;
 
class Man
{
      protected: int age;
      public:
             void Move()
             {
                  cout<<"Man is moving";}
                  void Info()
                  {
                       cout<<"Hello, I'm a man.\n";}};
                       
                       class Student:public Man
                       {
                             protected: int course,ID;
                             public:
                                    void Info() {cout<<"\nHello, I'm a student.\n";}
                                    void Sleep() {cout<<"First sort of students - sleep.";}
                                    void Learn() {cout<<"Second sort of students - learn.";}
                                    void id(int a) {ID=a; cout<<" And my ID is --> "<<ID;}}; 
                                    
                                    class Teacher:public Man
                                    {
                                          public:
                                          void Info() {cout<<"\nHello, I'm a teacher.";}
                                          void Teach() {cout<<" Teacher are teaching.";}
                                          void Cry() 
                                          {cout<<" Sometimes teacher are crying.";}};
                                          
                                          class Magistr:public Student,public Teacher
                                          {
                                                public:
                                                void Info() {cout<<"\n\nHello, I'm a magistr.\n\n";}
                                                };
                                          class Dekan:public Teacher
                                          {
                                                public:
                                                void Info() {cout<<"Hello, I'm a dekan.\n";}
                                                void Kickout() {cout<<"Dekan kick your ass, if you don't shut up.\n";}};
                                                
                                                int main()
                                                {
                                                    Man Max;
                                                    Max.Info();
                                                    Student Ban;
                                                    Ban.Info();
                                                    Ban.Learn();
                                                    Ban.id(286);
                                                    Magistr Paul;
                                                    Paul.Info();
                                                    Dekan John;
                                                    John.Info();
                                                    John.Kickout();
                                                    Teacher Feal;
                                                    Feal.Info();
                                                    Feal.Teach();
                                                    Feal.Cry();
                                                    getch();}
Добавлено через 18 минут
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.07.2013, 14:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Наследование (C++):

Заменить наследование классов на наследование интерфейсов - C++
#include &lt;iostream&gt; #include &lt;assert.h&gt; using namespace std; int people_on_base = 100; int vehicles_on_base = 100; double...

Наследование - C++
Используя механизм наследования реализовать иерархию: фигура-&gt;круг ..........-&gt;треугольник ...

Наследование - C++
Помогите решить вот такую задачку: Создать класс CFloatNumber, реализующий открытое наследование членов класса CIntNumber, содержащий...

Наследование - C++
Прошу помочь реализовть программу. Задание на русском: Разработать класс CFile,который инкапсулирует в себя такие функции работы с...

Наследование - C++
Привет! Есть следующая ситуация: class Counter { protected: unsigned int count; public: Counter(): count(0) {} ...

наследование - C++
в чём ошибка (посмотрите рисунок) #include &lt;iostream&gt; #include &quot;stdlib.h&quot; #include &lt;string&gt; using namespace std; char...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
zenw
154 / 110 / 3
Регистрация: 12.06.2013
Сообщений: 168
10.07.2013, 14:49 #2
Черт побери, что у вас с отступами?

Нужно изменить методы классов Teacher и Dekan, например, вот так:

C++
1
2
3
4
5
6
7
void Cry(const Student &student) {
    cout << "Teacher is crying at student with ID = " << student.ID;
}
 
void Kickout(const Student &student) {
    cout << "Dekan kicked out student with ID = " << student.ID;
}
и тогда в main можно будет вызывать их так:
C++
1
2
John.Kickout(Ban);
Feal.Cry(Ban);
1
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
10.07.2013, 16:18 #3
Цитата Сообщение от zenw Посмотреть сообщение
Черт побери, что у вас с отступами?
И снова украшательство текста. MasterYo, может Вам в дизайнеры лучше податься?
0
MasterYo
1 / 1 / 0
Регистрация: 07.07.2013
Сообщений: 39
10.07.2013, 16:39  [ТС] #4
Tulosba, мне просто так удобно читать код

Добавлено через 4 минуты
А зачем тогда вообще включили разные графические примочки если не даете пользоваться?
0
Tulosba
10.07.2013, 16:58     Наследование
  #5

Не по теме:

Цитата Сообщение от MasterYo Посмотреть сообщение
А зачем тогда вообще включили разные графические примочки если не даете пользоваться?
Если хочется что-то выделить из общего набора, то скорее всего возражать никто не будет. Но вот злоупотреблять не стоит.

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.07.2013, 16:58
Привет! Вот еще темы с ответами:

Наследование - C++
Если я объявлю класс A, как базовый для класса B, то есть вот так: class B : public A { ... }; То в методах класса B будут...

Наследование - C++
char* Texts :: SetBit() { char a; int b; cout &lt;&lt; &quot;Получаем битовую строку&quot; &lt;&lt; endl; cin &gt;&gt; a; b = strlen(a);...

наследование - C++
Доброго времени суток всем. У меня такая проблема: написал класс L2 список символов. На его основе требуется сделать дек символов. Кроме...

наследование С++ - C++
Здравствуйте) опять обращаюсь к вам за помощью)) Дано задание: Описать базовый класс CStr – строка. Описать производный от СStr класс...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
10.07.2013, 16:58
Ответ Создать тему
Опции темы

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