|
0 / 0 / 0
Регистрация: 05.01.2013
Сообщений: 32
|
||||||
Динамически создать массив31.01.2013, 05:22. Показов 1034. Ответов 8
Метки нет (Все метки)
Все чуть посложнее, чем кажется.
Goat, Wolf, Cowboy - производные классы от Animal. Динамически создаем массивы из Goat и Wolf. Cowboy - только один. Затем, поскольку у них у всех есть виртуальные функции, которые мне надо использовать, я создаю массив указателей на тип Animal.
А если этого не сделать, то меня ждет морока в коде и дописывание кучи циклов для каждого производного класса, когда можно все запихнуть в один массив и вызывать их виртуальные функции в одном цикле. Есть идеи решения этой проблемы? Добавлено через 4 минуты И раз пошла такая пьянка, то еще один вопрос: Есть базовый класс, есть производный класс. В базовом классе есть public функция "Кушать". Она ведь наследуется производному классу, не так ли? Ее не надо объявлять в интерфейсе производного класса или надо?
0
|
||||||
| 31.01.2013, 05:22 | |
|
Ответы с готовыми решениями:
8
Как динамически создать массив из динамически конструируемых экземпляров класса?
Как динамически создать ассоциативный массив? |
|
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
|
||||||||
| 31.01.2013, 08:51 | ||||||||
1
|
||||||||
|
0 / 0 / 0
Регистрация: 05.01.2013
Сообщений: 32
|
|||||||||||||||||||||
| 31.01.2013, 12:26 [ТС] | |||||||||||||||||||||
|
Допустим
Помогите, пожалуйста, еще кое с чем. Допустим, функцию int AnotherClass::randomPoint() вызывают только объекты SomeClass. Я хочу, чтобы функция randomPoint() проверяла количество очков у объекта SomeClass, вызвавшего ее, и в определенном случае возвращала 100 очков. Хотел использовать указатель this, но он вернет мне адреса объекта object из SomeClass, не так ли? Как сделать так, чтобы функция randomPoint() проверяла значение points объекта SomeClass, который ее вызвал?
0
|
|||||||||||||||||||||
|
_
317 / 151 / 27
Регистрация: 08.10.2011
Сообщений: 432
|
||
| 31.01.2013, 13:57 | ||
|
0
|
||
|
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
|
|||
| 31.01.2013, 14:09 | |||
|
Приведите более конкретный пример, где это необходимо. С SomeClass и AnotherClass я что-то путаюсь и не могу придумать пример.
1
|
|||
|
0 / 0 / 0
Регистрация: 05.01.2013
Сообщений: 32
|
|||||||||||
| 01.02.2013, 00:05 [ТС] | |||||||||||
|
lemegeton,
Пример: Объект класса Gambler вызывает функцию getCard(). В зависимости от того сколько очков у игрока, функция выдает ему определенное количество очков. Но функция getCard() в своем теле вызывает функцию giveACard() класса KolodaKart и giveACard() должна узнавать сколько очков у объекта типа Gamber, который вызвал ее. В этом и вся проблема.
0
|
|||||||||||
|
Форумчанин
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
||
| 01.02.2013, 02:02 | ||
|
0
|
||
|
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
|
|||||||
| 01.02.2013, 09:36 | |||||||
|
Пример на коленке: Три (относительно) универсальных класса для игры в очко. Card -- карта, знает название ранков и мастей (rank & suit) Deck -- колода, содержит карты, умеет выдавать случайную карту (drow) Hand -- "рука" игрока, держит карты, умеет уже считать очки (value).
0
|
|||||||
|
0 / 0 / 0
Регистрация: 05.01.2013
Сообщений: 32
|
|
| 01.02.2013, 09:45 [ТС] | |
|
Спасибо всем за советы. Проблему решил тем, что функция, раздающая очки, начала принимать в качестве параметра нынешнее количество очков у объекта
Однако, пойду улучшать свою архитектуру.
0
|
|
| 01.02.2013, 09:45 | |
|
Помогаю со студенческими работами здесь
9
Как создать массив заданной длины динамически Как создать массив динамически созданных TextBox Динамически создать массив, количество элементов вводится с клавиатуры Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|