|
0 / 0 / 0
Регистрация: 04.03.2020
Сообщений: 30
|
||||||
Наследование, конструкторы и operator+-*/=07.07.2023, 13:34. Показов 695. Ответов 9
Метки нет (Все метки)
2. почему тогда не работает b3=b1+b2 (ведь выражение возвращает также, как и operator«=» объект базового класса. Конструктора в производном нет, но ведь в первом случае работает итак) 3. operator+ я так понимаю? унаследовать тоже нельзя без добавлений (типа конструктора преобразования или еще чего-то такого типа using, this), потому что возвращает базовый объект Именно в этом виде хочется понять, как код работает 4. вообще интересует инфо, наследуются ли: Конструкторы – я понял, что нет (но базовый конструктор, если ничего не переопределено, компилятор предоставляет) Constr b():Constr a(){} – не считается – это не наследование, а вызов Operator = не наследуется, но вот в примере вопрос выше и возник (можно подумать, что компилятор через дефолтный присваивает, но почему тогда строка-индикатор из базового выходит) Operator +-*/ не наследуется, по идее (из-за разности возвращаемых типов) Деструкторы – не наследуются Это инфо, которое удалось найти в инете. Буду признателен, если кто-то проконсультирует
0
|
||||||
| 07.07.2023, 13:34 | |
|
Ответы с готовыми решениями:
9
решение задачи Конструкторы и деструкторы, Наследование, Множественное наследование. Полиморфизм
наследование. конструкторы |
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
|
|||
| 07.07.2023, 13:44 | |||
b свой собственный сгенерированный компилятором operator=, он и работает (и он работает в данном случае путем вызова operator= для подобъекта базового класса, т.е. для a).b, а возвращаете вы в operator+ - a. В первом случае к b присваивалось b, а во втором к b присваивается a. В этом разница.
2
|
|||
|
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
|
|
| 07.07.2023, 13:47 | |
|
1
|
|
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
|
|||||||
| 07.07.2023, 13:56 | |||||||
Сообщение было отмечено Valdemarych как решение
Решение
Кроме того, проблема будет из-за отсутствия const в параметре оператора=, потому что operator+ возвращает у вас временный объект, который не привязывается к неконстантной ссылке.
Минимальные исправления для вашего кода: Кликните здесь для просмотра всего текста
Книгу читайте.Ключевая тема для понимания: "Области видимости и сокрытие имен"
0
|
|||||||
|
0 / 0 / 0
Регистрация: 04.03.2020
Сообщений: 30
|
||
| 07.07.2023, 14:40 [ТС] | ||
|
А есть возможность уточнить, в этих утверждениях я прав?
0
|
||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
|
||
| 07.07.2023, 14:49 | ||
|
Деструкторы и конструкторы (кроме явного указания через С++11-фичу inherited constructors) не наследуются. Все остальное - это в основном про сокрытие, а не про наследование.
0
|
||
|
0 / 0 / 0
Регистрация: 04.03.2020
Сообщений: 30
|
|
| 07.07.2023, 14:49 [ТС] | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 18.07.2021
Сообщений: 12
|
|
| 07.07.2023, 17:22 | |
|
b b1=4; - вызывает конструктор b(int t):a(t){}
b b2; - создаёт объект класса b b2=b1; - для классов, которые не используют new хватает operator= по умолчанию (тема в учебнике: специальные ф-ии-члены) b2.s(); - s() открытый метод базового класса, наследуется как открытый метод производного класса, с этим okey b b3; - создаёт объект класса b b3=b1+b2; - operator+ для класса b не определён Насчёт специальных ф-ий членов: спец ф-ии-члены определённые по умолчанию в неявном виде вызывают спец ф-ии-члены базового класса. Не наследуются методы конструктора, деструктор, операция присваивания и дружественные функции.
0
|
|
|
Вездепух
13202 / 6837 / 1822
Регистрация: 18.10.2014
Сообщений: 17,296
|
||||
| 07.07.2023, 18:02 | ||||
|
0
|
||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
|
||||
| 07.07.2023, 21:17 | ||||
|
Лафоре известная книжка с огромным количеством как опечаток так и фактических ошибок. Иной раз такую чушь пишет автор, что закрадываются сомнения, а понимает ли он вообще преподносимый материал. Примеры: https://www.cyberforum.ru/post13748228.html Неявное преобразование с использованием конструктора с одним параметром
0
|
||||
| 07.07.2023, 21:17 | |
|
Помогаю со студенческими работами здесь
10
Наследование, конструкторы Наследование классов и конструкторы Наследование, конструкторы с параметрами Делегирующие конструкторы и наследование Конструкторы при множественном наследование Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|