Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Onics
0 / 0 / 0
Регистрация: 15.05.2013
Сообщений: 3
#1

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

15.05.2013, 23:23. Просмотров 570. Ответов 5
Метки нет (Все метки)

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

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

Создать специфицированный шаблон функции, принимающей массив указателей на char и количество самих указателей - C++
Задача: создать специфицированный шаблон функции, принимающей массив указателей на char и количество самих указателей. Вернуть адрес...

Создать специализацию для шаблона, которая принимает массив указателей на строки и количество этих указателей - C++
Нужно создать специализацию для шаблона, которая принимает массив указателей на строки и количество этих указателей. Эта специализация...

Нужно создать статический массив строк как статический массив указателей на строки. Условние ниже --> - C++
Слова английского текста рассортировать по возрастанию количества заданной буквы в слове. Слова с одинаковым количеством такой буквы...

массив указателей на базовый класс - C++
покажите пожалуйста на простом примере)))(а то я не оч понимаю:cry:)

Абстрактный класс и массив указателей - C++
Здравствуйте. Растолкуйте кто в курсе. Есть базовый абстрактный класс class Base { public: virtual void...

создать статический массив строк как статический массив указателей на строки, задание ниже --> - C++
Слова английского текста, начинающиеся с гласных букв, рассортировать в алфавитном порядке по первой согласной букве слова. Остальные слова...

5
DU
1483 / 1129 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
15.05.2013, 23:37 #2
либо иерархию животных завести, где все животные наследуются от базового класса животного и в массив пихать указатели на этот базовый класс, хотя динамический тип будет не базовый, а какое-то конкретное животное.
в базовом классе сделать виртуальный метод, вызвав который можно было бы определить, что это за животное.
например этот метод возвращал бы айдишник животного или еще что-то, по чему можно точно сказать что это за животное. можно еще попробовать dynamic_cast делать к конкретным животным.
второй вариант - обычный класс животного, в котором есть поле, идентифицирующее животное и в массив пихать правильно сконструированные инстансы такого класса. тут наследование не нужно будет. выборку делать по этому полю, которое либо сделать публичным (в этом случае структура больше подходит), либо через публичный метод класса, который бы возвращал значение этого поля.
1
Psilon
Master of Orion
Эксперт .NET
5908 / 4805 / 634
Регистрация: 10.07.2011
Сообщений: 14,407
Записей в блоге: 5
Завершенные тесты: 4
15.05.2013, 23:41 #3
Onics, в задании по-моему четко написано: у вас есть животные разных видов.
C++
1
2
3
4
5
class Animal abstract
{
public: 
   virtual bool IsParticipateInRound() = 0;
}
1
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, а как в нем определять какой объект вида животного он будет нести?
0
Psilon
Master of Orion
Эксперт .NET
5908 / 4805 / 634
Регистрация: 10.07.2011
Сообщений: 14,407
Записей в блоге: 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;
1
Onics
0 / 0 / 0
Регистрация: 15.05.2013
Сообщений: 3
15.05.2013, 23:59  [ТС] #6
спасибо, буду разбираться!
0
15.05.2013, 23:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2013, 23:59
Привет! Вот еще темы с ответами:

Массив указателей на массив строк и сортировка массива указателей - C++
Добрый день. Поступил вопрос. Есть задача. У нас встроенный массив char mass;.Мы вводим строки до тех пор, пока не будет заполнен массив...

Как передать в функцию двумерный массив указателей на класс? - C++
у меня есть std::vector&lt;Monster*&gt; monsters; Rect *pole; int pacmen_distance; Monster и Rect два...

Создать динамический массив указателей - C++
Создать динамический массив указателей для сохранения двумерного массива А в динамической памяти. Составить программу для подсчета...

Возможно ли создать массив указателей на перечисления? - C++
Например, мне нужно написать простой код, где будут использоваться перечисления. Возможно ли это организовать через указатели? Пример...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru