Форум программистов, компьютерный форум CyberForum.ru

опп класс и массив (создать массив указателей по выборке животных, участвующих в забеге) - C++

Восстановить пароль Регистрация
 
Onics
0 / 0 / 0
Регистрация: 15.05.2013
Сообщений: 3
15.05.2013, 23:23     опп класс и массив (создать массив указателей по выборке животных, участвующих в забеге) #1
Здравствуйте! Есть задача... вкратце. Нужно создать массив указателей по выборке животных участвующих в забеге.
Это
Лошадь, Крокодил, Верблюд, БТР)
Как мне 4 разных типа обьектов в один массив втулить?
Класс Животные, я так понял общий для всех... Их в массив нужно тулить.
Тогда как в "Животные" определенного вида всунуть?

На словах скажите, там разберусь)
Миниатюры
опп класс и массив (создать массив указателей по выборке животных, участвующих в забеге)  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2013, 23:23     опп класс и массив (создать массив указателей по выборке животных, участвующих в забеге)
Посмотрите здесь:

Массив из указателей на масив из указателей на массив из int) C++
Создать динамический массив указателей C++
C++ С++, как передать в функцию двумерный массив указателей на класс
C++ Нужно создать статический массив строк как статический массив указателей на строки. Условние ниже -->
абстрактный класс и массив указателей C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
15.05.2013, 23:37     опп класс и массив (создать массив указателей по выборке животных, участвующих в забеге) #2
либо иерархию животных завести, где все животные наследуются от базового класса животного и в массив пихать указатели на этот базовый класс, хотя динамический тип будет не базовый, а какое-то конкретное животное.
в базовом классе сделать виртуальный метод, вызвав который можно было бы определить, что это за животное.
например этот метод возвращал бы айдишник животного или еще что-то, по чему можно точно сказать что это за животное. можно еще попробовать dynamic_cast делать к конкретным животным.
второй вариант - обычный класс животного, в котором есть поле, идентифицирующее животное и в массив пихать правильно сконструированные инстансы такого класса. тут наследование не нужно будет. выборку делать по этому полю, которое либо сделать публичным (в этом случае структура больше подходит), либо через публичный метод класса, который бы возвращал значение этого поля.
Psilon
Master of Orion
 Аватар для Psilon
5743 / 4691 / 619
Регистрация: 10.07.2011
Сообщений: 14,162
Записей в блоге: 5
Завершенные тесты: 4
15.05.2013, 23:41     опп класс и массив (создать массив указателей по выборке животных, участвующих в забеге) #3
Onics, в задании по-моему четко написано: у вас есть животные разных видов.
C++
1
2
3
4
5
class Animal abstract
{
public: 
   virtual bool IsParticipateInRound() = 0;
}
Onics
0 / 0 / 0
Регистрация: 15.05.2013
Сообщений: 3
15.05.2013, 23:48  [ТС]     опп класс и массив (создать массив указателей по выборке животных, участвующих в забеге) #4
Цитата Сообщение от Psilon Посмотреть сообщение
Onics, в задании по-моему четко написано: у вас есть животные разных видов.
C++
1
2
3
4
5
class Animal abstract
{
public: 
   virtual bool IsParticipateInRound() = 0;
}
Понял... То есть массив будет хранить объекты Animal, а как в нем определять какой объект вида животного он будет нести?
Psilon
Master of Orion
 Аватар для Psilon
5743 / 4691 / 619
Регистрация: 10.07.2011
Сообщений: 14,162
Записей в блоге: 5
Завершенные тесты: 4
15.05.2013, 23:50     опп класс и массив (создать массив указателей по выборке животных, участвующих в забеге) #5
Onics, никак, это называется полиморфизм. определяя в базовом классе виртуальный метод проверки, вы можете создать массив animal а затем писать
C++
1
2
3
4
5
6
7
Horse horse;
Camel camel;
Animal animals[2];
animals[0] = horse;
animals[1] = camel;
for(int i = 0; i < 2; i++)
   cout << "animal #" << i <<"Is participate in round? \t" << animals[i].IsParticipateInRound() << endl;
Onics
0 / 0 / 0
Регистрация: 15.05.2013
Сообщений: 3
15.05.2013, 23:59  [ТС]     опп класс и массив (создать массив указателей по выборке животных, участвующих в забеге) #6
спасибо, буду разбираться!
Yandex
Объявления
15.05.2013, 23:59     опп класс и массив (создать массив указателей по выборке животных, участвующих в забеге)
Ответ Создать тему
Опции темы

Текущее время: 00:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru