В 3-й класс добавить первые 2 как структуру данных...?
Всем привет, есть такой вопрос по поводу структуры программы, перед тем как начать писать :) (сокращу все только для определенного задания), Заранее говорю, что решать тут за меня ничего не надо, просто надо понять как можно, а как нет :)
Есть 2 класса:
1) Двигатель {атрибуты.... }
2) Бак {Атрибуты... }
- к ним идет куча функций итд... это пропускаю. Дальше же задание, которое не понятно:
Сделайте еще 1 класс "ракета": Этот класс собирает классы "двигатель" и "бак" и предоставляет дальнейшие компоненты, из которых состоит ракета.
Из этого следует, что Атрибуты этого класса имеют две структуры данных, которые могут сохранять неизвестное значение "баков и двигателей".
И вот сам вопрос, какие возможности есть в реализации выше-перечисленного? :) Желательно без списков...
может быть как-то в 1 стракт можно запихнуть атрибуты двух классов? В общем хочется разобраться с этим заранее, чтобы потом не делать все методом тыка)) Проф. уже 2 месяца болеет и этого так и не прошли, а готовиться уже надо )) вот пытаюсь экзамены прошлых годов делать.
ну как не понятно :) есть 2 класса, в каждом из них пусть будет по 3 атрибута, и вот в 3 классе, надо держать какой-нибудь контейнер, чтобы можно было записывать "неопределенное кол-во" всех этих атрибутов из 1 и 2 класса, проблема в том, что к примеру array сразу отпадает, т.к. там кол-во ячеек константное. Вот и вот думаю как это залепить все :)
Но то, что вы написали уже вроде выглядит как "правильно" :) Завтра начну все делать, отпишусь еще)) Только вот еще маленький вопрос. К примеру вариант 2, в классе ракета сразу же идет протектед двигатель и бак, а как тогда вызывать атрибуты первых двух классов? Raketa::Двигатель.Атрибут? и все будет ок?)
фу блин, пойду видяшки смотреть про классы в с++ с самого начала хД
Therapyx:
Это, вообще то говоря, противоречит вашей фразе:
Сделайте еще 1 класс "ракета": Этот класс собирает классы "двигатель" и "бак" и предоставляет дальнейшие компоненты, из которых состоит ракета.
Если эта фраза непосредственно из задания, то она определённо предполагает, что ваша ракета состоит из 1-го двигателя и 1-го бака ... и никак уж не из неопределённого количества.
Но вам виднее ;-)
Олег Цилюрик: да мне вообще ничего не виднее ))) я это с немецкого кое как переводил))))))) Может просто недополнимание самого материала, т.к как уже и говорил к сожалению классов у нас еще небыло, то что я знаю, это было давно и в жаве хД А потом кучу времени только веб... где они мне ниразу не пригодились :) Дословно там с момента "Отсюда следует, что этот класс(ракета) содержит две структуры данных как атрибуты", Структуры данных еще жирным выделены )
Therapyx:
- вариант 1 (встраиванием) будет проще в дальнейшем написании, вариант 2 (наследование) изящнее и короче.
- protected я написал как пример ... там может быть и public, по ситуации
- при наследовании к атрибутам базовых классов обращайтесь прямо по их имени без всяких промежуточных уровней именования (как если бы они у вас состояли просто в Ракета)
Олег Цилюрик: а если из варианта 1, с которым будет проще в дальнешем? ) Экзамен будет просто состоять из 5 листов заданий. КОторые расчитаны на часика так 3-4. Так что думаю лучше заранее тренировать то, что позволит еффективнее все сделать :)