|
59 / 52 / 11
Регистрация: 04.08.2015
Сообщений: 731
|
||||||||||||||||
Доступ к пользовательскому класу по void указателю15.10.2016, 15:37. Показов 2913. Ответов 44
Метки нет (Все метки)
Здравствуйте, есть указатель
Пусть в данном случае это пользовательский тип, то есть есть это объект класса Button. Мне необходимо чтобы некоторая функция возвращала указатель как указатель на Button Как я только не пытался....
Я понимаю что тут надо что-то типо конструктора делать, но как?
0
|
||||||||||||||||
| 15.10.2016, 15:37 | |
|
Ответы с готовыми решениями:
44
Массив по указателю void*
Преобразование указателя void к указателю на структуру |
|
Комп_Оратор)
|
|||||||||||
| 15.10.2016, 18:53 | |||||||||||
![]() ![]() Добавлено через 13 минут Или сначала опережающе объявите функцию:
1
|
|||||||||||
|
59 / 52 / 11
Регистрация: 04.08.2015
Сообщений: 731
|
||
| 16.10.2016, 09:53 [ТС] | ||
|
Я конечно про наследование читал но еще их нигде не использовал, и использовать класс указателей как базовый даже и не думал. В общем у меня есть пара вопросов. 1) Т.к. мне надо изначально в любом случае создать некоторый массив класса указателей, не зная изначально какой будет класс наследник, и раз вы предлагаете в моем случае использовать именно такой вариант, то верно ли мое предположение; наследника можно как-то "нарастить" для базового класса? 2) если да, то как же это делается? пока что мне кажется что как-то изнутри, вызовом функции внутри базового класса. 3) и не удалится ли объект базового класса если удалить класс наследник? то есть если освободить объект-указатель в моем случае. и как это сделать? чтобы все-таки удалился только наследник. 4) Т.к Класс наследник может создаться в любой момент программы то и доступ к нему возможен только по указателю? Ну как и раньше? верно? Пока что это все вопросы.. продолжу изучать наследование. Спасибо, что помогаете, не смотря что основной вопрос этой темы давно уже решен.
0
|
||
|
Комп_Оратор)
|
|||||
| 16.10.2016, 10:18 | |||||
virtual и всё). Тогда каждый наследник уходя порубит только то что сам нахватал.koker007, вообще, если Вы только начали с этим, рекомендую потренироваться на простеньких задачках сначала. Иначе потратите неоправданно много нервов и времени. Задача, которую Вы поставили именно так и может быть решена красиво, но к этому нужно плавно подойти.
1
|
|||||
|
|
|||
| 16.10.2016, 13:03 | |||
|
Наследник является Базовым классом, т.е должен иметь ровно тот же ф-ционал что и в родителе, и должна сохраняться работоспособность кода при подмене базового класса - наследником. Проще говоря базовый класс - обобщение своих предков, обобщение ф-ционала с которым нужно будет работать без знания конкретных классов и особенностей их поведения.
Можно использовать наследование для наращивания, но чаще всего используется именно переопределение поведения. Т.е есть набор вир.методов являющихся интерфейсом, в которые переопределяются в наследниках(поведение). Интерфейс тот же - поведение разное. Пример кода: Публичное и приватное наследование классов
1
|
|||
|
Комп_Оратор)
|
|||
| 16.10.2016, 17:49 | |||
|
http://dic.academic.ru/dic.nsf/ruwiki/93577 то есть, - абстрактный базовый класс без данных и с чисто виртуальными методами. Но и при наследовании интерфейсов, также соблюдается иерархичность, позволяющая расширяться очень гибко наследуя необходимое поведение. И именно такой подход ведёт к минимальным издержкам в виде ненужных свойств и методов. Avazart, я не уверен, что ТС готов к тому о чём речь. Главное, чтобы он понял, что родитель при наследовании уже или равен (частный случай о котором Вы говорите и в котором родителем является по сути брат или сестра. Даром, что его конструктор опережает, а во всём почем - равенство) потомку. Потомок - шире или равен. Хотя в его конструкторе на один конструктор минимум больше и если принципиально, то он всё таки шире. Даже если только переопределяет родителя.
0
|
|||
|
|
||
| 16.10.2016, 18:06 | ||
|
https://ru.wikipedia.org/wiki/... 8.D0.B5.29 http://metanit.com/sharp/patterns/1.2.php Итд итп...
0
|
||
|
Комп_Оратор)
|
|||
| 16.10.2016, 18:07 | |||
|
Вот из wiki чтобы попроще:
https://ru.wikipedia.org/wiki/... 0%B8%D0%B5) при том что наследник есть (IS) родитель + расширение.
0
|
|||
|
|
||
| 16.10.2016, 18:09 | ||
|
Не по теме: P.S: Терпения много, но могу минусануть если настроение будет плохое с горяча, я бываю щедрый ]:->.
0
|
||
|
Комп_Оратор)
|
||
| 16.10.2016, 18:13 | ||
|
Вы говорите о том что парадигма IS имеет место быть, с какой целью? Доказать что родитель уже наследника? Или явить свою мощь? Итог, - как обычно, - испорченный топик.
0
|
||
|
Любитель чаепитий
|
||||||||||||
| 16.10.2016, 18:23 | ||||||||||||
0
|
||||||||||||
|
|
|||||
| 16.10.2016, 18:26 | |||||
![]() Добавлено через 36 секунд
0
|
|||||
|
Комп_Оратор)
|
|||
| 16.10.2016, 18:48 | |||
|
В части расширения (а это контекст в котором мы тут страдаем сейчас)) тоже ложь. Нельзя не учесть родительского конструктора. Кроме того у базового класса вообще может не быть экземпляров (абстрактный если). Ну и VMT у него может не быть (насколько я понимаю).
0
|
|||
|
|
||||
| 16.10.2016, 19:00 | ||||
|
"Is a" рассматривается с позиции кода который использует, например с позиции сцены/канвы на которой отображаются объекты(например фигуры). Для сцены всё фигуры: что круг что квадрат. Круг является фигурой, квадрат является фигурой (но стоит заметить обратное не справедливо)
0
|
||||
|
Комп_Оратор)
|
||
| 16.10.2016, 21:06 | ||
|
1
|
||
|
Комп_Оратор)
|
||
| 16.10.2016, 21:23 | ||
|
Реакция у меня нормальна. Если вы найдёте место где я вас (или ещё кого) послал учить матчасть, я посмотрю и наверное попрошу прощения, даже если и был там прав по сути. Вы же не правы и по сути. А я не посылаю вас учить хорошие манеры. И не пошлю. Не потому, что бесполезно. Просто, это не мой стиль. Предлагаю это оставить.
0
|
||
|
59 / 52 / 11
Регистрация: 04.08.2015
Сообщений: 731
|
||||||||||||||||
| 17.10.2016, 10:27 [ТС] | ||||||||||||||||
|
Не сорьтесь =)
В общем о наследовании прочел главу. Сделал так
И потом где-то в программе уже не с глобальной областью видимости (в моем случае в цикле отрисовки кадра) будет создан объект. Допустим кнопка. Вопрос в том как нарастить дочерний объект на объекте родителе. Допустим базовый объект будет:
Просто вы сказали что наращивать можно, покажите пожалуйста как. В книге которой я читал там создаются дочерние объекты от дочернего класса и используют методы родителя класса. А вот как урезать дочерний объект до родителя, или расширить до дочернего ни слова... Возможно это просто уже другая тема?
0
|
||||||||||||||||
| 17.10.2016, 10:27 | |
|
Привести указатель на класс к указателю на void Как привести тип умного указателя к указателю на void? Описать функцию типа void с передачей параметров по ссылке или указателю POWERA234(A,B,C,D), вычисляющую вторую, третью Доступ к указателю - элементу класса Доступ к элементам CStringArray по указателю Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|