Помогите пожалуйста написать программу с "Наследованием".
|
|
Matou | Дата: Среда, 23 Мая 2012, 21:17 | Сообщение # 21 |
Исходный коТ
Сейчас нет на сайте
| Quote (-=WarChief=-) Вот как-то так, без переопределения методов базового класса в наследуемых (но этого в условии и не требуется) Я бы не стал так четко следовать заданию, в России мало преподов по информатике способных составить нормальное задание, обычно пишут одно, а требуют другое. Лучше бы прикрутить список. Более того есть совсем упоротые, которые после этого требуют еще и явного преобразования указателя на родительский класс в указатель на дочерний. Так что лучше все варианты исполнить.
|
|
| |
mistik | Дата: Среда, 23 Мая 2012, 21:42 | Сообщение # 22 |
был не раз
Сейчас нет на сайте
| Matou, правильно говорит xD
|
|
| |
clidi | Дата: Среда, 23 Мая 2012, 21:51 | Сообщение # 23 |
почетный гость
Сейчас нет на сайте
| -=WarChief=-, Помоему в списках могут храниться только одинаковые тип объектов. Хотя опать же возможмо ошибаюсь.
|
|
| |
-=WarChief=- | Дата: Среда, 23 Мая 2012, 21:59 | Сообщение # 24 |
почетный гость
Сейчас нет на сайте
| Да да правильно говориш, добавить в список обекты мы сможем а вот доступ к новым полям не получим (ето через list[0].method() имею ввиду).
Сообщение отредактировал -=WarChief=- - Среда, 23 Мая 2012, 22:00 |
|
| |
Matou | Дата: Среда, 23 Мая 2012, 22:04 | Сообщение # 25 |
Исходный коТ
Сейчас нет на сайте
| Quote (-=WarChief=-) Да да правильно говориш, добавить в список обекты мы сможем а вот доступ к новым полям не получим (ето через list[0].method() имею ввиду) Кошмар какой, добавлять в список надо не объекты, а указатели на объекты. list[n]->method();
|
|
| |
-=WarChief=- | Дата: Среда, 23 Мая 2012, 22:11 | Сообщение # 26 |
почетный гость
Сейчас нет на сайте
| Ну или так. Добавлено (23.05.2012, 22:11) --------------------------------------------- Вобщем куда список прикручивать в проге неясно.
|
|
| |
Matou | Дата: Среда, 23 Мая 2012, 23:08 | Сообщение # 27 |
Исходный коТ
Сейчас нет на сайте
| Список прикручиваешь к массиву и прогоняешь на все базовые методы, потом берешь объекты производных классов и вызываешь их специфичные методы.
|
|
| |
-=WarChief=- | Дата: Четверг, 24 Мая 2012, 10:09 | Сообщение # 28 |
почетный гость
Сейчас нет на сайте
| Насколько я понял тогда нужно создать производные обьекты отдельно, добавить указатели на них в массив, проверить, через list[n]->baseMethod(), а тогда обращатся непосредственно к производным обьектам для проверки? вроде как plane->newMethod() ? если все таки нужно обращатся к производнім обьектам напрямую, так для чего этот массив? легче же просто напрямую и другие методы класов вызвать.
Сообщение отредактировал -=WarChief=- - Четверг, 24 Мая 2012, 10:11 |
|
| |
Matou | Дата: Четверг, 24 Мая 2012, 12:10 | Сообщение # 29 |
Исходный коТ
Сейчас нет на сайте
| Quote (-=WarChief=-) так для чего этот массив? легче же просто напрямую и другие методы класов вызвать. Как бы полиморфизм продемонстрировать.
|
|
| |
-=WarChief=- | Дата: Четверг, 24 Мая 2012, 14:34 | Сообщение # 30 |
почетный гость
Сейчас нет на сайте
| Оу, ясно ) лишь бы было, а зачем не имеет значения, крутая задача )
|
|
| |
mistik | Дата: Четверг, 24 Мая 2012, 20:57 | Сообщение # 31 |
был не раз
Сейчас нет на сайте
| Вообщем вот я сделал решение варианта на тему наследование из учебника " Т.А. Павловская С/C++ Программирование на языке высокого уровня " страница 252. Вариант 3:
Создать абстрактный класс CVehicle. На его основе реализовать классы CPlane, CCar и CShip. Классы должны иметь возможность задавать и получать координаты, параметры средств передвижения (цена, скорость, год выпуска). Для самолета должна быть определенна высота, для самолета и каробля - колличество пассажиров. Для корабля - порт приписки.
Написать программу, создающую список обьектов этих классов в динамической памяти. Программа должна содержать меню, позволяющую осуществлять проверку всех методов класса.
Решил выжоложить здесь это для тех кто ищет ответ в интернете на этот вариант, надеюсь кому нибудь поможет. Компилировал в Microsoft Visual C++ 2010 Express.
Решение:
http://pastie.org/private/5zskehefrprhtv1fhu77iq
Сообщение отредактировал mistik - Четверг, 24 Мая 2012, 21:06 |
|
| |