|
59 / 52 / 11
Регистрация: 04.08.2015
Сообщений: 731
|
||||||||||||||||
Доступ к пользовательскому класу по void указателю15.10.2016, 15:37. Показов 2649. Ответов 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 | |
|
Помогаю со студенческими работами здесь
40
Привести указатель на класс к указателю на void Как привести тип умного указателя к указателю на void? Описать функцию типа void с передачей параметров по ссылке или указателю POWERA234(A,B,C,D), вычисляющую вторую, третью Доступ к указателю - элементу класса Доступ к элементам CStringArray по указателю Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2.
Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники".
В. . .
|
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3.
Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
|