|
29 / 23 / 2
Регистрация: 14.04.2009
Сообщений: 448
|
|
Наследуются ли конструкторы и деструкторы?02.06.2009, 14:54. Показов 30486. Ответов 124
Метки нет (Все метки)
0
|
|
| 02.06.2009, 14:54 | |
|
Ответы с готовыми решениями:
124
Наследуются ли конструкторы?
Конструкторы и деструкторы |
|
20 / 20 / 0
Регистрация: 22.01.2012
Сообщений: 88
|
|
| 07.12.2013, 02:05 | |
|
При открытом наследовании, открытые методи базового класса становяться открытыми методами производного класса, кроме конструкторов и деструкторов. Но их можно вызвать при использовании списков инициализаторов членов.
0
|
|
| 07.12.2013, 02:09 | |
|
1
|
|
|
20 / 20 / 0
Регистрация: 22.01.2012
Сообщений: 88
|
||
| 07.12.2013, 02:15 | ||
|
0
|
||
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
||
| 07.12.2013, 02:25 | ||
.Добавлено через 1 минуту Да много полезного, но жаль оно не пригодиться, разработчиком классов я наврятли буду, а для потребителей классов там скажем так: "много лишнего материала".
0
|
||
| 07.12.2013, 02:28 | |
|
0
|
|
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
||
| 07.12.2013, 02:31 | ||
|
Увы для потребителей готовых классов более важны знания предметной области.
Добавлено через 2 минуты Я наверно там где то ошибся, на практике обычно все МЕЛКИЕ ошибки исправляются.
0
|
||
|
|
|
| 13.01.2016, 18:18 | |
|
Так наследуются или нет? Лично я считаю, что только друзья не наследуются. Проверял опытным путем.
Почему в своей книге Страуструп (а также Стивен Прата) пишет, что они не наследуются, также как и оператор присваивания? Я считаю, что если объект производного класса может вызвать метод базового класса любым доступным способом, даже если он скрыт, то значит он был унаследован.
0
|
|
|
|
||||||
| 13.01.2016, 18:25 | ||||||
0
|
||||||
|
3 / 3 / 0
Регистрация: 09.01.2012
Сообщений: 28
|
|
| 13.01.2016, 18:29 | |
|
Ну и что, логично же ожидать, что конструктор при наследовании, если оно вдруг имеет место, должен остаться конструктором, с соответствующей семантикой. В этом примере совсем не так.
0
|
|
|
|
||
| 13.01.2016, 18:30 | ||
|
0
|
||
|
Неэпический
|
|||||||
| 13.01.2016, 18:42 | |||||||
0
|
|||||||
|
3 / 3 / 0
Регистрация: 09.01.2012
Сообщений: 28
|
|||||||||||||||||||||
| 13.01.2016, 18:44 | |||||||||||||||||||||
|
Для начала нужно понять, о каком конструкторе идёт речь.
Компилятор может генерировать конструкторы автоматически, например, конструктор по умолчанию. Если он генерирует конструктор по умолчанию для производного класса, то он сам вставит вызов конструктора базового класса. Это можно легко увидеть, выполнив такой код:
Второй способ, который соответствует стандарту C++11:
0
|
|||||||||||||||||||||
|
|
||
| 13.01.2016, 19:20 | ||
|
C++ Builder 6 не хочет компилить, багнутый, левую ошибку показывает. Но начинает компилить только, когда вручную определяешь конструктор по умолчанию A::A(). xecu91 То что у тебя вначале написано - это не из-за наследования. У каждого класса должны быть свои конструкторы. Если ни один не определён, то генерируется конструктор по умолчанию, в код которого добавляется неявный вызов конструктора по умолчанию базового класса. Но для конструктора по умолчания базового класса стоит модификатор explicit, который требует чтобы его вызывали явно. Поэтому и ошибка. И никак не из-за наследования. А то что в C++11 добавили так называемый constructor inheritance, то я бы эту возможность назвал так - constructor adoption (заимствование конструктора). И у меня почему-то код не компилится в VS 2013 (вместо конструктора A::A пытается вызвать копирующий конструктор B:B(const B&), но не может т.к. не может преобразовать int в B), хотя rextester компилит.
0
|
||
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
| 13.01.2016, 20:15 | |
|
М-да, веселый язык С++! О каких бы самых базовых вещах ни зашла речь, внезапно выясняется, что никто о них не имеет адекватного представления!
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||
| 13.01.2016, 20:45 | ||
|
не только конструкторы - весь класс, со всем своим барахлом. весь функционал, и все данные.
0
|
||
|
3 / 3 / 0
Регистрация: 09.01.2012
Сообщений: 28
|
|
| 13.01.2016, 21:25 | |
|
kzru_hunter, это не так, попробуй убери оттуда explicit и скомпилируй.
0
|
|
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
| 13.01.2016, 21:48 | |
|
Смотря у кого спрашивают:
- если у мидла: наследник наследует все методы и свойства родителя. - если у джуна: то не наследуются (конструктор, деструктор, оператор присваения и friend отношения)
0
|
|
|
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
|
||
| 14.01.2016, 01:05 | ||
|
Они могут генерироваться компилятором, но не наследуются.
0
|
||
|
|
|||||||||
| 14.01.2016, 07:39 | |||||||||
![]() Раз Страуструп говорит, что не наследуются, значит скорее всего так и есть. Но как я говорил, мне не даёт покоя следующее:
0
|
|||||||||
| 14.01.2016, 07:39 | |
|
Конструкторы и деструкторы Конструкторы и деструкторы
Конструкторы и деструкторы Конструкторы и деструкторы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки
Правым кликом по серверу -> отладочная информация -> edit
Заменить "net": "raw", на "net": "tcp",
Нажать кнопку reload.
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|