Конструкторы в наследовании04.04.2014, 23:13. Показов 3009. Ответов 0
Метки нет (Все метки)
Всем привет.
Столкнулся с некоторой проблемой в области конструкторов в наследовании. Насколько я понял, конструкторы - это некоторые инструкции, которые выполняются перед созданием объекта. Сначала формируются родительские части объекта, потом сама дочерняя часть, соответственно с вызовом конструкторов. Каждый дочерний конструктор при вызове немедленно вызывает конструктор родителя. Он помещает его во фрейм на вершине стека. Наглядно как-то так:
Теперь ближе к вопросу. Когда я попытался создать конструктор без аргументов в классе Cat, а в классе Animal дефолтного не было, IDE все подчеркнула красным и сказала - плохо. Хорошо, как я понял - если дефолтного конструктора нет в родительском классе, то и оператор super() вызывать будет пустую функцию, что не имеет смысла. Далее вещь еще более странная. Ладно, создал в Animal конструктор дефолтный, как заглушку. Далее, в классе Cat создал конструктор, который должен инициализировать тип (целочисленная переменная). Все было хорошо до того момента, пока я не удалил дефолтный конструктор в классе Animal, и в классе Cat получил красные поля в области конструкторов дефолтного и инициализирующего тип. Весь код:
Добавлено через 13 минут ________________________________________ ________________________________________ ___ Ответ ниже: ________________________________________ ________________________________________ ___ Вупс, сам спросил, сам дал ответ и запутался. Теперь объяснение. Каждый дочерний конструктор немедленно вызывает родительский. Почему? Потому что если мы не используем оператор super() для вызова конкретного конструктора родительского класса, компилятор делает это так:
Вот и все. Всем спасибо! xD
0
|
||||||||||||||||||||||||||||||||||||
| 04.04.2014, 23:13 | |
|
Ответы с готовыми решениями:
0
Определите класс матриц. Напишите перегруженные конструкторы для создания одномерной и двумерной матриц. В конструкторы передаются размерности матриц Ошибка в наследовании Ошибка при наследовании |
| 04.04.2014, 23:13 | |
|
Помогаю со студенческими работами здесь
1
Массив объектов при наследовании
Правильное написание конструктора при наследовании Конструкторы Конструкторы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|