|
0 / 0 / 0
Регистрация: 30.10.2010
Сообщений: 68
|
|
ООП + полиморфизм = wtf?27.08.2011, 19:49. Показов 3531. Ответов 40
Метки нет (Все метки)
Есть:
Класс A - отец Класс Б - дочерний Класс Ц - дочерный, наследуеться от А(сестра Б) Есть массив типа А, с названием Mass. Он хранит в себе объекты классов Б и Ц. в классе Б есть функция F(). в классе Ц есть функция F() (отличающаяся функционалом). Внамание! Вопрос: как провернуть такую часть кода - Mass[0..100].F();
0
|
|
| 27.08.2011, 19:49 | |
|
Ответы с готовыми решениями:
40
ООП. Полиморфизм ООП Полиморфизм Наследование Полиморфизм инкапсуляция и наследование(ООП) |
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 27.08.2011, 19:53 | |
|
В цикле, вестимо.
0
|
|
|
186 / 61 / 4
Регистрация: 29.04.2011
Сообщений: 641
|
||||||
| 27.08.2011, 19:54 | ||||||
0
|
||||||
|
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
||||||
| 27.08.2011, 19:57 | ||||||
|
Только выглядеть это должно бы
0
|
||||||
|
0 / 0 / 0
Регистрация: 30.10.2010
Сообщений: 68
|
|||||||
| 27.08.2011, 20:04 [ТС] | |||||||
|
D3D_UI == клас А D3DXButton == класс Б setStatus == F()
Добавлено через 1 минуту А если юзать в вызове -> Error 23 error C2819: type 'D3D_UI' does not have an overloaded member 'operator ->' c:\users\baizor\desktop\robotino v3 directx 9 - копия\robotino v2 directx 9\Direct_All.h 710 1 Robotino V2 Directx 9
0
|
|||||||
|
Заблокирован
|
||||||
| 27.08.2011, 20:07 | ||||||
|
ну он вам пишет, что объект пытается использовать функцию, у которой отсутствует тело.
0
|
||||||
|
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
|||||||||
| 27.08.2011, 20:09 | |||||||||
|
Или, если класс D3D_UI абстрактный, то функцию надо объявить в этом классе как "чистую виртуальную"
Добавлено через 1 минуту
0
|
|||||||||
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||
| 27.08.2011, 20:09 | ||
|
ну и, в третьих, нужно воспользоваться алгоритмом for_each.
0
|
||
|
Заблокирован
|
|
| 27.08.2011, 20:10 | |
|
/зы
Как вариант, можно вместо виртуальной функции заюзать паттерн "стратегия". То бишь, использовать функторы, либо указатели на функцию, либо стратегии при помощи шаблонов.
0
|
|
|
Заблокирован
|
||
| 27.08.2011, 20:10 | ||
|
0
|
||
| 27.08.2011, 20:12 | |
|
Не по теме: Отец, сестра... Как вы у них пол различаете? :D
0
|
|
|
0 / 0 / 0
Регистрация: 30.10.2010
Сообщений: 68
|
|
| 27.08.2011, 20:12 [ТС] | |
|
0
|
|
| 27.08.2011, 20:13 | |
|
Не по теме: grizlik78, нуу, у Б есть такая дырочка, а у Ц есть такой хвостик... :D:D
1
|
|
|
0 / 0 / 0
Регистрация: 30.10.2010
Сообщений: 68
|
||||||||
| 27.08.2011, 20:14 [ТС] | ||||||||
xDD))
0
|
||||||||
|
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
||
| 27.08.2011, 20:15 | ||
|
0
|
||
|
Заблокирован
|
||
| 27.08.2011, 20:15 | ||
|
В общем, если кратко: класс А должен содержать интерфейс управления всем семейством полиморфных классов. А класс Б, как потомок класса А - лишь конкретные реализации виртуальных методов класса А. И тогда все будит нормально.
0
|
||
|
Заблокирован
|
||
| 27.08.2011, 20:16 | ||
|
Может быть вам следуеть базовый класс A объявить как абстрактный, и тогда бы вы такой ошибки неправильной конструкции массива не допустили бы, так как на этапе компиляции компилятор выловил бы такую ошибку, как объявление массива типа A и присваивание его элементам производных классов B и C.
0
|
||
|
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
|
| 27.08.2011, 20:18 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 30.10.2010
Сообщений: 68
|
||
| 27.08.2011, 20:20 [ТС] | ||
|
Я уже понял все, только одного не знаю - как сделать класс Абстрактным, я давненько это делал... в нем не может быть не абстрактных функций и еще что-то ?
0
|
||
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 27.08.2011, 20:20 | |
|
BAIZOR, в нём должна быть хотя бы одна чисто виртуальная функция.
0
|
|
| 27.08.2011, 20:20 | |
|
Помогаю со студенческими работами здесь
20
Подкиньте практику по ООП + полиморфизм + шаблоны пожалуйста. ООП в С++ (наследование, инкапсуляция, полиморфизм, перегрузка операторов): что читать? загадочный полиморфизм в ООП Принципы ООП (наследование, инкапсуляция и полиморфизм) WTF 2 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|