|
140 / 72 / 26
Регистрация: 29.06.2015
Сообщений: 186
|
||||||||||||||||
Как обратится к обьекту класса, являющегося наследником абстрактного класса31.07.2015, 23:58. Показов 10398. Ответов 131
Метки нет (Все метки)
Здравствуйте!
У меня есть 4 класса: один виртуальный, следующие 2 - наследуют виртуальный класс и последний класс содержит указатель на виртуальный класс (динамический массив, который растет от методов buildCar и buildTruck). eFuel - это также класс, который содержит еще класс, но в данном вопросе они не принимают участия. Вопрос: как через указатель четвертого класса доступится к наследующим классам?
0
|
||||||||||||||||
| 31.07.2015, 23:58 | |
|
Ответы с готовыми решениями:
131
Как полю класса А обратится к приватной функции класса А?
|
|
|
||
| 01.08.2015, 01:06 | ||
|
Добавлено через 1 минуту Eraston, Почитайте книгу Саттера и прекращайте быдлокодить....
0
|
||
|
60 / 11 / 4
Регистрация: 09.09.2014
Сообщений: 182
|
|
| 01.08.2015, 01:10 | |
|
Avazart, грань между инкапсуляцией и сокрытием довольно тонкая.
0
|
|
|
140 / 72 / 26
Регистрация: 29.06.2015
Сообщений: 186
|
||||
| 01.08.2015, 01:15 [ТС] | ||||
0
|
||||
|
60 / 11 / 4
Регистрация: 09.09.2014
Сообщений: 182
|
|
| 01.08.2015, 01:15 | |
|
Avazart, я согласен, что необходимо полностью закрывать доступ к членам сложных типов данных типа (TreeNode, File, List, Table, Array и пр. являющихся составными, и, тем более, работающих с указателями), но абсолютно не вижу смысла закрывать простые int'ы c float'ами. Возможно, с практикой и опытом моё мнение и изменится.
0
|
|
|
|
|||
| 01.08.2015, 01:21 | |||
|
Инкапсуляция подразумевает скрытие, или точнее сказать ограничение доступа, "скрытие внутренностей".
Добавлено через 3 минуты Разница была бы если бы к примеру на "грузовой заправке" продавалась бы еще дизель топливо к примеру. Если уже должно быть "жестко" заданые значения то вероятно стоит использовать сonst- переменные, для итовых еще можно "переопределять" enum Да и вероятно конструктор с параметрами базового класса вероятно стоит сделать protected. Добавлено через 55 секунд Члены класса- закрытыми.
0
|
|||
|
140 / 72 / 26
Регистрация: 29.06.2015
Сообщений: 186
|
|||
| 01.08.2015, 01:28 [ТС] | |||
|
0
|
|||
|
|
|
| 01.08.2015, 01:33 | |
|
Ну так методов вобще может не быть.
К примеру геттер в вашем случае может присутствовать, а сеттеры могут и отсутствовать- т.е не будет возможности изменить значение. Для этого собственно и разделяется доступ на геттеры и сеттры. Более того сеттеры и геттеры могу делать что-то еще помимо установки значения так называемое "последействие" и повидение может менятся от базового члена класса к наследникам, чего не достикнуть если открывать/"защищать" членны-данные.
0
|
|
|
140 / 72 / 26
Регистрация: 29.06.2015
Сообщений: 186
|
||
| 01.08.2015, 01:38 [ТС] | ||
|
0
|
||
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|||||||
| 01.08.2015, 01:42 | |||||||
0
|
|||||||
|
|
|||||||
| 01.08.2015, 02:02 | |||||||
0
|
|||||||
|
60 / 11 / 4
Регистрация: 09.09.2014
Сообщений: 182
|
||
| 01.08.2015, 02:08 | ||
|
0
|
||
|
70 / 64 / 40
Регистрация: 17.02.2014
Сообщений: 265
|
||||||
| 01.08.2015, 02:19 | ||||||
|
Лишнее движение - обращаться по адресу функции, чтобы получить переменную, когда ее можно получить напрямую - только для унаследованных детей. Писать 20 геттеров это вообще лол. Давайте уж тогда правильнее будем писать не один геттер, а два - итого 60 методов для 20 переменных (допустим, что хочу пользоваться всеми).
0
|
||||||
|
|
|||
| 01.08.2015, 02:29 | |||
|
smartpointer, Почитайте про inline может поймете в чем заблуждаетесь.
Добавлено через 3 минуты Добавлено через 2 минуты
0
|
|||
|
70 / 64 / 40
Регистрация: 17.02.2014
Сообщений: 265
|
|||
| 01.08.2015, 02:37 | |||
|
0
|
|||
|
|
|||||
| 01.08.2015, 02:47 | |||||
|
Добавлено через 2 минуты Добавлено через 1 минуту Добавлено через 42 секунды Кода в иерархии два уровня все кажется простым, но когда больше и кода ваши классы пытается использовать кто-то другой вы даете ему возможность ошибиться.
0
|
|||||
| 01.08.2015, 02:50 | |
|
0
|
|
|
|
||
| 01.08.2015, 02:54 | ||
|
Про protected я уже написал он "для методов". friend стоит использовать осторожно, в данном случае он ни к чему.
0
|
||
|
70 / 64 / 40
Регистрация: 17.02.2014
Сообщений: 265
|
|||
| 01.08.2015, 03:01 | |||
Про friend-ы интересно - расскажите (ну или ссылку на крайняк)?
0
|
|||
|
|
||||||||
| 01.08.2015, 03:17 | ||||||||
|
Добавлено через 3 минуты К примеру, если нужно запретить создавать объекты напрямую через конструкторы. Добавлено через 8 минут
3
|
||||||||
| 01.08.2015, 03:17 | |
|
Метод абстрактного класса не видит переменные дочернего класса
Как инициализировать члены класса, являющегося параметром шаблона Как обратится к объекту класса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Калькулятор для расчета родства
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).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|