0 / 0 / 1
Регистрация: 18.09.2010
Сообщений: 106
|
|
1 | |
Создать класс "Студент" и классы "Бюджетный студент" и "Коммерческий студент"04.12.2011, 21:34. Показов 13981. Ответов 21
Метки нет (Все метки)
Доброго времени суток. Помогите с задачкой.
Наследование. Создать класс студент и классы бюджетный студент и коммерческий студент.
0
|
04.12.2011, 21:34 | |
Ответы с готовыми решениями:
21
Создать класс Студент и класс наследник Студент-контрактник Создать базовый класс «Учащийся» и производные классы «Школьник» и «Студент» Создайте файл Студент. Занесите в отдельный файл записи из файла Студент, добавив сведения о новых студентах Создать класс студент Создать класс студент |
4773 / 2582 / 894
Регистрация: 29.11.2010
Сообщений: 5,590
|
||||||
04.12.2011, 22:11 | 2 | |||||
Не вопрос.
1
|
0 / 0 / 1
Регистрация: 18.09.2010
Сообщений: 106
|
|
04.12.2011, 22:53 [ТС] | 3 |
Спасибо. Один вопрос только: а классы бюджетный студент и коммерческий студент разве не должны наследовать свойства студента?
Как я понял, наследование заключается в том, что классы бюджетный студент и коммерческий студент наследуют часть свойств (или все свойства) студента, плюс к ним добавляется что то своё. В бюджетном, к примеру, размер стипы, а в коммерческом, например, стоимость курсов/учебы...
0
|
0 / 0 / 1
Регистрация: 18.09.2010
Сообщений: 106
|
||||||
04.12.2011, 23:11 [ТС] | 5 | |||||
То есть так что ли будет выглядеть??:
0
|
0 / 0 / 1
Регистрация: 18.09.2010
Сообщений: 106
|
|
04.12.2011, 23:21 [ТС] | 7 |
Я как бы от задания отталкиваюсь. То есть, как я понимаю, не приципиальны те параметры, которые на самом деле существуют у студента - бюджетника и коммерческого. Главное показать наследование. Но я не понимаю, как это записать. Подскажите.
0
|
1 / 1 / 0
Регистрация: 29.11.2010
Сообщений: 10
|
|
04.12.2011, 23:26 | 8 |
Вероятно, требуется продемонстрировать особенности наследования. Задай какую-нибудь переменную в protected области в базовом классе, например число студентов. А в производных классах ее измени и выведи 3 значения.
0
|
0 / 0 / 1
Регистрация: 18.09.2010
Сообщений: 106
|
|
04.12.2011, 23:30 [ТС] | 9 |
Помогите реализовать. Самый простой пример.
0
|
1 / 1 / 0
Регистрация: 29.11.2010
Сообщений: 10
|
||||||
04.12.2011, 23:49 | 10 | |||||
Может быть, что-то вроде такого. Не уверен, что правильно понял задание.
1
|
0 / 0 / 1
Регистрация: 18.09.2010
Сообщений: 106
|
|
05.12.2011, 00:00 [ТС] | 11 |
Спасибо огромное, что время уделили. Я кстати, тоже не совсем понял задание. Формулировка немного расплывчата. По идее то, если исходить из самого задания, то верным ответом будет то, что написал пользователь lemegeton, однако в таком случае все слишком просто получается.
А вас ещё раз благодарю. Жаль, только плюсик нет возможности поставить.
0
|
4773 / 2582 / 894
Регистрация: 29.11.2010
Сообщений: 5,590
|
||||||
06.12.2011, 22:23 | 12 | |||||
Предыдущий приведенный пример сильно некорректный. Так неправильно писать. Вот абсолютно вымышленный, но более-менее корректный пример.
1
|
06.12.2011, 22:40 | 13 |
Вариант от Serj-spb некорректен вот почему: все три класса обладают одним и тем же свойством st, но имеют разное значение по умолчанию. Это не есть демонстрация наследственности. С таким же успехом можно было создать один класс и три экземпляра класса с разными значениями свойства
Вариант от lemegeton идеален (с точки зрения демонстрации наследственности): есть действительно базовые свойства, присущие всем студентам, и есть свойства, присущие только коммерческим или бюджетным студентам. Единственное, что я бы сделал класс Student абстрактным (то бишь запрет на создание экземпляра данного класса). Потому что абстрактных студентов (в нашей задаче) не бывает: студент либо бюджетный, либо коммерческий. И в бюджетного студента добавил своё свойство, а то получается, что бюджетный студент выглядит как подмножество коммерческого студента Добавлено через 2 минуты Вообще, я бы порекомендовал этот пример показывать начинающим, как пример правильной реализации наследования
1
|
0 / 0 / 1
Регистрация: 18.09.2010
Сообщений: 106
|
|
06.12.2011, 22:50 [ТС] | 14 |
Огромное спасибо, Вам. Только вот у меня вопрос: с помощью конструктора сделана данная задачка? И как добавить в вывод бюджетного студента количество стипендии?
0
|
0 / 0 / 1
Регистрация: 18.09.2010
Сообщений: 106
|
|
07.12.2011, 00:18 [ТС] | 16 |
Странно, что при запуске программа вылетает... Появляется окно для ввода и тут же исчезает...
0
|
4773 / 2582 / 894
Регистрация: 29.11.2010
Сообщений: 5,590
|
||||||
07.12.2011, 01:17 | 17 | |||||
Совершенно верно. Правда, громоздко получится, если по-уму делать, да и преподавателю объяснять тяжело будет, не вникая.
Добавлено через 7 минут https://www.cyberforum.ru/cpp-... 10807.html
1
|
07.12.2011, 13:39 | 18 |
Но тогда можно создать экземпляр класса StudentInterface. Неужто нельзя как-то более просто сделать класс абстрактным? Вроде были какие-то мухлежи типа создать виртуальный деструктор или что-то типа того
0
|
4773 / 2582 / 894
Регистрация: 29.11.2010
Сообщений: 5,590
|
|
07.12.2011, 14:13 | 19 |
Каким образом? Он же полностью виртуальный. Будет что-то вроде "cannot declare/allocate variable of abstract class"...
Вроде нет. Только абстрактной виртуальной функцией без реализации. Можно не делать pure virtual interface класс, а просто наделить базовый класс абстрактной функцией. Но так как-то не по-понятиям. )
0
|
07.12.2011, 15:15 | 20 |
Ошибся, имел в виду StudentBase. А у StudentBase не реализован метод toString, потому и не создастся экземпляр этого класса. Но как-то коряво получается...
Всё-таки разработчики Си++ что-то недокурили...
0
|
07.12.2011, 15:15 | |
07.12.2011, 15:15 | |
Помогаю со студенческими работами здесь
20
Создать расширенный класс СТУДЕНТ Не получается заполнить массивы. Создать класс студент Создать основной класс студент и создать класс наследник с именем отделения Реализовать интерфейс Абитуриент, абстрактный класс Студент, подкласс Студент-заочник. JAVA Создать абстрактный класс Stud и производные классы Студент и Преподаватель Создать базовый класс «Учащийся» и производные классы «Школьник» и «Студент» Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |