|
8 / 8 / 2
Регистрация: 08.03.2014
Сообщений: 101
|
||||||
Как реализовать наследование классов08.03.2014, 16:27. Показов 1251. Ответов 14
Метки нет (Все метки)
Здравствуйте, уважаемые форумчане. Помогите с решением проблемной ситуации, связанной скорее всего с аргументами в коде. Я определяю дочерний класс Diagonalsandrectangle, но при выполнении метода ShowObject ShowPoint не срабатывает. Задали домашнюю, почитал материал, думаю дело в том что надо было аргументы еще добавить или объявить. Никогда раньше с наследованием, а тем более множественным, не сталкивался. Только напишите, пожалуйста, в коде как именно добавить, не голосовно. И как реализовать, допустим, цикл передачи аргументов методу с тем, чтобы сдвигалась точка, образуя прямую?
0
|
||||||
| 08.03.2014, 16:27 | |
|
Ответы с готовыми решениями:
14
Как реализовать правильное наследование классов Реализовать наследование классов тетрадь,учебник, толковый словарь,книга Наследование классов: реализовать классы точка, линия, треугольник, круг |
|
245 / 246 / 38
Регистрация: 08.04.2013
Сообщений: 927
|
||||||
| 08.03.2014, 16:48 | ||||||
|
lion_wine, почитайте еще раз про наследование, а точнее про кострукторы. в Вашем коде, когда вызывается конструктор класса Diagonalsandsquare, классы Point и Segment не создаются.
правильно написать так
0
|
||||||
|
8 / 8 / 2
Регистрация: 08.03.2014
Сообщений: 101
|
|
| 08.03.2014, 17:01 [ТС] | |
|
Спасибо, но тем не менее ShowPoint() не срабатывает.
0
|
|
|
245 / 246 / 38
Регистрация: 08.04.2013
Сообщений: 927
|
|
| 08.03.2014, 17:10 | |
|
lion_wine, так у Вас проблема с наследованием или с функцией ShowPoint? ибо она и в классе Point не работает)
0
|
|
|
8 / 8 / 2
Регистрация: 08.03.2014
Сообщений: 101
|
|
| 08.03.2014, 17:18 [ТС] | |
|
Да не не. В классе Point ShowPoint рисует на экране точку. Здесь же в производном классе ничего не выходит. (Ну, естественно ,если задействовать функцию ввода сначала. Я вот думаю, что как раз эти параметры и не передаются в Diagonalsandsquare при создании объекта testobject)
0
|
|
|
19497 / 10102 / 2461
Регистрация: 30.01.2014
Сообщений: 17,808
|
|||||||
| 08.03.2014, 17:22 | |||||||
0
|
|||||||
|
245 / 246 / 38
Регистрация: 08.04.2013
Сообщений: 927
|
||||||
| 08.03.2014, 17:25 | ||||||
|
lion_wine, честно. у меня ничего нигде не рисует)
но можете еще вот так написать
DrOffset, а это по стандарту?
0
|
||||||
|
8 / 8 / 2
Регистрация: 08.03.2014
Сообщений: 101
|
||||||
| 08.03.2014, 17:28 [ТС] | ||||||
|
вот весь код:
0
|
||||||
|
19497 / 10102 / 2461
Регистрация: 30.01.2014
Сообщений: 17,808
|
|
| 08.03.2014, 17:36 | |
|
metaluga145, конечно.
Добавлено через 2 минуты lion_wine, а какую задачу ты хочешь решить через наследование, сформулируй?
0
|
|
|
8 / 8 / 2
Регистрация: 08.03.2014
Сообщений: 101
|
|
| 08.03.2014, 17:38 [ТС] | |
|
что же неправильно тогда?
0
|
|
|
19497 / 10102 / 2461
Регистрация: 30.01.2014
Сообщений: 17,808
|
|
| 08.03.2014, 17:42 | |
|
lion_wine, не понятно чего ты хочешь добиться. Какое поведение ты ждешь, объединяя два класса через наследование?
Как только мы это поймем, можно будет сказать что неправильно.
0
|
|
|
8 / 8 / 2
Регистрация: 08.03.2014
Сообщений: 101
|
|
| 08.03.2014, 17:49 [ТС] | |
|
собственно нужно создать дочерний объект (квадрат с диагоналями). Но говорю же на простом застопорился. И не представляю, как передать параметры posX, posY в функцию рисования одной точки из дочернего класса, например, для того, чтобы она рисовала прямую.
0
|
|
|
19497 / 10102 / 2461
Регистрация: 30.01.2014
Сообщений: 17,808
|
||||||
| 08.03.2014, 18:00 | ||||||
|
lion_wine, я кажется понял.
Ну вот как ты передавал параметры в объекты классов Point и Segment. Так же и тут. Но у тебя множественное наследование и в обоих базовых классах определена функция с одинаковым именем. Чтобы вызвать какую-то конкретную, ее надо явно обозначить.
Очевидно, что линия - это две точки. Прямоугольник - это 4. Наследовать прямоугольник от точки, это все равно что наследовать машину от колеса. Почитай еще литературу о наследовании, например Скотта Мейерса.
1
|
||||||
|
8 / 8 / 2
Регистрация: 08.03.2014
Сообщений: 101
|
|
| 08.03.2014, 18:15 [ТС] | |
|
DrOffset, А что? Задали изобрести колесо, так я и думаю, как его придумать.
Главное, спасибо за код, а то я почему-то уверен был, что наследуемый класс получает все параметры по умолчанию и без пинка конечно же после предварительной инициализации объекта класса Point.
0
|
|
|
19497 / 10102 / 2461
Регистрация: 30.01.2014
Сообщений: 17,808
|
||||||
| 08.03.2014, 18:21 | ||||||
|
lion_wine, агрегирование. Колесо - это часть машины, а не ее предок.
Точка - это часть линии, а не ее предок.
Тебе задали сделать именно наследование, именно множественное и именно с этими сущностями?
0
|
||||||
| 08.03.2014, 18:21 | |
|
Помогаю со студенческими работами здесь
15
Наследование: реализовать иерархию классов (класс String, его потомки - SymbString и BinStryng) Автоматическая генерация классов С ++ с UML диаграмм классов. Наследование в с++. Абстрактные классы. WhiteStarUML не понимаю как сделать наследование классов Заменить наследование классов на наследование интерфейсов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
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
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|