|
36 / 23 / 10
Регистрация: 14.11.2013
Сообщений: 85
|
|||||||||||
Не могу организовать иерархию классов17.11.2013, 11:41. Показов 1565. Ответов 15
Метки нет (Все метки)
Всем привет!
Нужен совет как правильно сделать наследование. Чтобы через указатель базового класса (Форма) можно было бы создать объект производного класса (Точка). А так же чтобы можно было вызывать методы из производного. Shapes.h Кликните здесь для просмотра всего текста
main.cpp
![]() Дайте совет что делать
0
|
|||||||||||
| 17.11.2013, 11:41 | |
|
Ответы с готовыми решениями:
15
Разработать иерархию классов, демонстрирующее работу с коллекцией объектов разных классов
Организовать иерархию классов |
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|||||||
| 17.11.2013, 12:21 | |||||||
1
|
|||||||
|
36 / 23 / 10
Регистрация: 14.11.2013
Сообщений: 85
|
|||||||
| 17.11.2013, 17:01 [ТС] | |||||||
|
Понятно, что базовые классы ничего не знают о производных, но все таки Как-нибудь так
0
|
|||||||
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|||||||
| 17.11.2013, 17:06 | |||||||
1
|
|||||||
|
36 / 23 / 10
Регистрация: 14.11.2013
Сообщений: 85
|
||||||||||||
| 17.11.2013, 17:39 [ТС] | ||||||||||||
все работает
Оказывается ничего сложного нет. Только скобки были неправильно расставлены. Из-за этого и не компилировалась программа Добавлено через 16 минут Еще один вопрос есть. Смотрите. Каждый раз при выборе любой функции из производного класса, этот указатель приходится приводить к правильному типу, нужно всякий раз указывать (Circle *):
0
|
||||||||||||
|
All rights reserved.
93 / 83 / 24
Регистрация: 03.08.2013
Сообщений: 258
|
|
| 17.11.2013, 17:44 | |
|
А можно такой вопрос задать, зачем вам возится с базовым классом? Наплодили его потомков вот и пользуйтесь их услугами напрямую через их объекты)
0
|
|
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|||||||
| 17.11.2013, 17:47 | |||||||
0
|
|||||||
|
36 / 23 / 10
Регистрация: 14.11.2013
Сообщений: 85
|
||
| 17.11.2013, 17:55 [ТС] | ||
|
StackOverflow, Хочу создать массив объектов базового класса. Точнее указателей на базовый класс.
И потом динамически выделить для них память, т.е. создать производные объекты (точка, круг, ...) Потом обращаться к нужным функциям только через указатель на базовый класс А сейчас тренируюсь с этими классами. Пробую как лучше все организовать ![]() Добавлено через 6 минут ладно, пожалуй пока хватит. Думаю по другому никак не получится. Нужно всегда приводить указатель
0
|
||
| 17.11.2013, 18:00 | |
|
Не по теме: Может стоит задаться вопросом стоит ли тут использовать наследование ?
0
|
|
|
503 / 352 / 94
Регистрация: 22.03.2011
Сообщений: 1,112
|
|
| 17.11.2013, 18:04 | |
|
LuxArt Дайте определение массив и поймете, что Ваша идея не совсем коректна.
0
|
|
|
36 / 23 / 10
Регистрация: 14.11.2013
Сообщений: 85
|
|||
| 17.11.2013, 18:12 [ТС] | |||
|
А если нужно несколько объектов, то для этого подойдет массив указателей на базовый класс Добавлено через 1 минуту
0
|
|||
|
|
|
| 17.11.2013, 18:18 | |
|
1
|
|
|
503 / 352 / 94
Регистрация: 22.03.2011
Сообщений: 1,112
|
||
| 17.11.2013, 18:28 | ||
|
Так что если у Вас массив элементов баззового класса, а Вы в процессе прохода по массиву, хотите от них вызовов дочерних методов и эти методы не вписываются в баззовый класс (через virtual), то стоит подумать, чтобы добавить еще один(или несколько) массивов, которые будут хранить ОДНОТИПНЫЕ элементы.
1
|
||
|
447 / 300 / 65
Регистрация: 12.10.2009
Сообщений: 1,162
|
||||||
| 17.11.2013, 19:04 | ||||||
|
Вы не понимаете основ ООП, что такое базовый класс, через указатель базового класса вы НИКОГДА не вызовете тех функций классов потомков которые не определены как виртуальные в классе предке т. е.
Avazart, про фабрики ему читать пока рано пусть сперва выучит основы ООП
0
|
||||||
|
36 / 23 / 10
Регистрация: 14.11.2013
Сообщений: 85
|
||
| 17.11.2013, 21:30 [ТС] | ||
Очень даже интересно почитать. ![]() А основы ООП я итак знаю. Даже если я и ошибся и чего-то недопонимаю, то ничего страшного
0
|
||
|
447 / 300 / 65
Регистрация: 12.10.2009
Сообщений: 1,162
|
|
| 17.11.2013, 22:48 | |
|
Проблема в том что Фабрика это шаблон проектирования которые желательно читать после осознания ООП, я вам не запрещаю читать про паттерны, упаси боже, просто не факт что все прочитанное вы сможете корректно принять, в связи с непониманием что такое паттерны и когда их уместно применять
Добавлено через 1 минуту Данные выводы об вашем уровне осознания ООП следуют из вашего непонимания как нужно работать с классами
0
|
|
| 17.11.2013, 22:48 | |
|
Помогаю со студенческими работами здесь
16
Организовать иерархию классов: дом, улица, город Как можно организовать иерархию классов для работы с графами Не могу понять иерархию классов java Создать иерархию классов Построить иерархию классов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|