Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 30.12.2015
Сообщений: 19
1

Наследование

02.05.2016, 02:30. Показов 510. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет.
Задали работу в которой я не могу изначально правильно расставить классы.
Программа по управлению школы.

классы:
1. Person (человек)
2. Pupil (ученик, он же человек)
3. Worker (рабочий, он же человек)
4. Teacher (учитель, он же рабочий)
5. Tutor (классный руководитель, он же учитель)
6. Manager (директор школы, он же рабочий)
7. Secretary (секретарь, он же рабочий)
8. Class (класс)
9. Layer (Уровень класса, типа первый класс, второй...)
10.School (тут метода меню, которая управляет всем этим бардаком)

я бы сделал так.
Person виртуальная функция.
Pupil: public Person
Worker: public Person (тут сомнения, не знаю как правильно)
Teacher: public Worker
Tutor (тут тоже не знаю, так как он относится к Teacher, а Teacher к Worker, путаница)
Manager: public Worker
Secretary: public Worker
Class
Layer
School

Насчет virtual тоже не знаю как лучше.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.05.2016, 02:30
Ответы с готовыми решениями:

Заменить наследование классов на наследование интерфейсов
#include <iostream> #include <assert.h> using namespace std; int people_on_base = 100; int...

Наследование
Добрый день. Мне нужно реализовать такую структуру классов: есть класс 1, от него наследуются три...

Наследование
Написать программу, которая демонстрирует работу с объектами двух типов: Т1 и Т2, для чего создать...

Наследование
Создать класс CPoint – точка. На его основе создать классы CcoloredPoint и CLine. На основе ...

3
Эксперт С++
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
02.05.2016, 03:29 2
Цитата Сообщение от kirillfit Посмотреть сообщение
я бы сделал так.
все верно.
Цитата Сообщение от kirillfit Посмотреть сообщение
Tutor (тут тоже не знаю, так как он относится к Teacher, а Teacher к Worker, путаница)
так и есть.
C++
1
class Tutor : public  Teacher
Добавлено через 2 минуты
Цитата Сообщение от kirillfit Посмотреть сообщение
Насчет virtual тоже не знаю как лучше.
например, виртуальная функция-член:
C++
1
virtual void do() = 0;
вызов которой будет приводить персону в действие.

дворник будет подметать,
учитель - учить,
ученик - учиться,
секретарь - кофе носить,
и тп.
0
0 / 0 / 0
Регистрация: 30.12.2015
Сообщений: 19
02.05.2016, 04:48  [ТС] 3
Спасибо за ответ.

У меня еще вопрос, есть функция show, которая выводит на экран все данные о персоне.
Вот пример написал.
Кликните здесь для просмотра всего текста

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
class A //virtual
{
private:
int dataA;
public:
//ctors...
virtual void show()=0;
}
 
 
class B:public A
{
private:
int dataB;
public:
void show()
{
cout<<dataA<<dataB;
}
 
 
class C:public A //virtual
{
private:
int dataC;
public:
void show2()=0;// другая функция show2
}
 
 
class D:public C
{
private:
int dataD;
public:
void show2()
{
cout<<dataA<<dataB<<dataC<<dataD;
}
}


Так вот вопрос, выведет ли show2 из класса D на экран данные dataA, dataB, dataC, dataD?
0
Эксперт С++
3224 / 1751 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
02.05.2016, 18:27 4
Цитата Сообщение от kirillfit Посмотреть сообщение
4. Teacher (учитель, он же рабочий)
5. Tutor (классный руководитель, он же учитель)
Цитата Сообщение от kirillfit Посмотреть сообщение
Tutor (тут тоже не знаю, так как он относится к Teacher, а Teacher к Worker, путаница)
Никакой путаницы. "А, он же Б", означает, что А является открытым наследником Б.
0
02.05.2016, 18:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.05.2016, 18:27
Помогаю со студенческими работами здесь

наследование
Как наследовать классы с использованием виртуальных функций? Можете привести пример?

Наследование
Добрый вечер! Ребята, почему в данном примере #include &lt;iostream&gt; using namespace std; ...

наследование
Пытаюсь разобраться в наследовании Есть класс class File { public: struct comp { char...

Наследование
Наследование 1)Должна быть табличка 3*3 2)Разные типы наследования 3)программа в в которой будет...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru