Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 15.05.2013
Сообщений: 3
1

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

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

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

На словах скажите, там разберусь)
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Миниатюры
опп класс и массив (создать массив указателей по выборке животных, участвующих в забеге)  
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.05.2013, 23:23
Ответы с готовыми решениями:

Как создать массив указателей на класс?
Добрый день! Нужна Ваша помощь. VS 2010, C++, Windows Form. Создал класс, он работает, проверил....

Создать массив указателей на одномерный массив и через указатели присвоить массиву значения
Не могу понять как работают указатели. Объявляю массив, делаю на него указатель. Циклом с...

Создать динамический массив записей животных
Можно пять собачек. Создать динамический масив записей(кличка , вид, возраст, ареал). для...

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

5
DU
1492 / 1138 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
15.05.2013, 23:37 2
либо иерархию животных завести, где все животные наследуются от базового класса животного и в массив пихать указатели на этот базовый класс, хотя динамический тип будет не базовый, а какое-то конкретное животное.
в базовом классе сделать виртуальный метод, вызвав который можно было бы определить, что это за животное.
например этот метод возвращал бы айдишник животного или еще что-то, по чему можно точно сказать что это за животное. можно еще попробовать dynamic_cast делать к конкретным животным.
второй вариант - обычный класс животного, в котором есть поле, идентифицирующее животное и в массив пихать правильно сконструированные инстансы такого класса. тут наследование не нужно будет. выборку делать по этому полю, которое либо сделать публичным (в этом случае структура больше подходит), либо через публичный метод класса, который бы возвращал значение этого поля.
1
Master of Orion
Эксперт .NET
6081 / 4937 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
15.05.2013, 23:41 3
Onics, в задании по-моему четко написано: у вас есть животные разных видов.
C++
1
2
3
4
5
class Animal abstract
{
public: 
   virtual bool IsParticipateInRound() = 0;
}
1
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
Master of Orion
Эксперт .NET
6081 / 4937 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
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
0 / 0 / 0
Регистрация: 15.05.2013
Сообщений: 3
15.05.2013, 23:59  [ТС] 6
спасибо, буду разбираться!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.05.2013, 23:59

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

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

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

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


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

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

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