Суббота, 30 Ноября 2024, 02:32

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Помогите пожалуйста написать программу с "Наследованием".
mistikДата: Среда, 23 Мая 2012, 12:32 | Сообщение # 1
был не раз
Сейчас нет на сайте
Мне задали написать программу в С++ на тему "Наследование". Это когда у материнского класса свойства перенимает дочь класс и при этом изменяя дочь мы не меняем мать, а меняя мать мы меняем и дочь. Ну я думаю вы про это знаете, это базовая тема в С++.

Вот вариант который мне задали:

Создать абстрактный класс CVehicle. На его основе реализовать классы CPlane, CCar и CShip. Классы должны
иметь возможность задавать и получать координаты, параметры средств передвижения (цена, скорость, год
выпуска). Для самолета должна быть определенна высота, для самолета и каробля - колличество
пассажиров. Для корабля - порт приписки.

Написать программу, создающую список обьектов этих классов в динамической памяти. Программа должна
содержать меню, позволяющую осуществлять проверку всех методов класса.


Если у кого нибудь есть время, пожалуйста помогите, программа вроде не сложная. А то я не уверен что сам справлюсь.


Сообщение отредактировал mistik - Среда, 23 Мая 2012, 13:01
-=WarChief=-Дата: Среда, 23 Мая 2012, 17:00 | Сообщение # 2
почетный гость
Сейчас нет на сайте
Это что с GUI нужно писать?И что значит проверка методов класса? Это просто вызов, или что-то другое?
mistikДата: Среда, 23 Мая 2012, 17:05 | Сообщение # 3
был не раз
Сейчас нет на сайте
-=WarChief=-, я думаю весь смысл "GUI" сводиться к простому отображению данных в концольном виде и возможность изменять значения и все. smile
-=WarChief=-Дата: Среда, 23 Мая 2012, 17:19 | Сообщение # 4
почетный гость
Сейчас нет на сайте
Так это еще и парсер командной строки писать?

Добавлено (23.05.2012, 17:19)
---------------------------------------------
или проверка это просто вызов методов с програм с последующим их выводом в консоль, а не обработка запросов из консоли?

Добавлено (23.05.2012, 17:19)
---------------------------------------------
Так к чему тогда меню?

MatouДата: Среда, 23 Мая 2012, 17:25 | Сообщение # 5
Исходный коТ
Сейчас нет на сайте
-=WarChief=-, скорей имеется в виду нумерованный список и ввод цифры, вот и весь парсер.


Stalker_ShooterДата: Среда, 23 Мая 2012, 18:00 | Сообщение # 6
3D XNA'шник
Сейчас нет на сайте
Не знаю, как на плюсах, а на шарпе я ничего сложного не вижу. В чем именно возникает затруднение?

*Не убегай от снайпера, умрешь уставшим.
*Мои статьи...
mistikДата: Среда, 23 Мая 2012, 18:14 | Сообщение # 7
был не раз
Сейчас нет на сайте
~Все что было написано в этом сообщении до этого - мой бред, извините и не обращайте внимания~

Сообщение отредактировал mistik - Среда, 23 Мая 2012, 18:48
-=WarChief=-Дата: Среда, 23 Мая 2012, 18:22 | Сообщение # 8
почетный гость
Сейчас нет на сайте
Ого "прямо пока запущена программа менять поля", врятли, как это вообще реализовать, создание новых полей класса рантайм? Видимо нужно в исходниках класса написать поля а потом просто задавать значения этих полей для дочерних классов.
MatouДата: Среда, 23 Мая 2012, 18:30 | Сообщение # 9
Исходный коТ
Сейчас нет на сайте
mistik, хватит родительский класс называть материнским >_< Откуда ты вообще такое слово взял, даже с английского так перевести вряд ли получится.


mistikДата: Среда, 23 Мая 2012, 18:41 | Сообщение # 10
был не раз
Сейчас нет на сайте
Извините я запутал вас и себя.. Вот, я нарисовал что я понял из задачи:

http://s3.dump.ru/viewer/5740808/

Цена, Скорость, Год выпуска это общие поля(черным цветом)


Сообщение отредактировал mistik - Среда, 23 Мая 2012, 19:09
clidiДата: Среда, 23 Мая 2012, 20:43 | Сообщение # 11
почетный гость
Сейчас нет на сайте
mistik,
абстрактный класс - должен иметь хотя бы один pure virtual method. Ты не можешь создавать объекты этого класса. У сабклассов пиши например class CPlane : CVehicle{...};
И должен обязательно имплиментиировать абстрактные методы в них. Чтоб overloading methods определялись динамически, перед функцией надо писать virtual.
Например ты можешь хранить в поинтере от суперкласса объект сабкласса и если хочешь вызувать методы в зависимости от хранимого объекта, надо писать virtual.

P.S.: Для динамической памати лучше сделать copy constructor, overloading assignement operator и virtual destructor.
-=WarChief=-Дата: Среда, 23 Мая 2012, 20:55 | Сообщение # 12
почетный гость
Сейчас нет на сайте
Вот как-то так, без переопределения методов базового класса в наследуемых (но этого в условии и не требуется), и с проверкой методов каждого класса вручную, а не через меню. О создании в динамической памяти, видимо имелось в виду через указатели.
clidiДата: Среда, 23 Мая 2012, 21:00 | Сообщение # 13
почетный гость
Сейчас нет на сайте
-=WarChief=-, Ты помоему не написал список объектов.

Сообщение отредактировал clidi - Среда, 23 Мая 2012, 21:01
-=WarChief=-Дата: Среда, 23 Мая 2012, 21:02 | Сообщение # 14
почетный гость
Сейчас нет на сайте
Всмысле объекты должны быть в списке с типом cVechile?
clidiДата: Среда, 23 Мая 2012, 21:04 | Сообщение # 15
почетный гость
Сейчас нет на сайте
-=WarChief=-, Например связный список с объектами cVechile и потом все динамически определять. Мне так кажется, хотя возможно ошибаюсь.
-=WarChief=-Дата: Среда, 23 Мая 2012, 21:06 | Сообщение # 16
почетный гость
Сейчас нет на сайте
А может наоборот сначала создать наследники затем добавить в список?
mistikДата: Среда, 23 Мая 2012, 21:08 | Сообщение # 17
был не раз
Сейчас нет на сайте
-=WarChief=-, а в чем ты это компилировал ?

Сообщение отредактировал mistik - Среда, 23 Мая 2012, 21:09
-=WarChief=-Дата: Среда, 23 Мая 2012, 21:12 | Сообщение # 18
почетный гость
Сейчас нет на сайте
Есть разница?

Добавлено (23.05.2012, 21:12)
---------------------------------------------
Вообще работаю постоянно в QtSdk, но и в Code::Blocks прекрасно скомпилировалось.

mistikДата: Среда, 23 Мая 2012, 21:15 | Сообщение # 19
был не раз
Сейчас нет на сайте
-=WarChief=-, да мне просто препод требует Microsoft Visual C++ )
-=WarChief=-Дата: Среда, 23 Мая 2012, 21:17 | Сообщение # 20
почетный гость
Сейчас нет на сайте
Это вообще код без зависимостей компилироватся должен всюду.

Добавлено (23.05.2012, 21:17)
---------------------------------------------
Старый мастдай поклонник ), посоветуй ему расширить свой кругозор ).

  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг