Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
4 / 4 / 1
Регистрация: 17.12.2015
Сообщений: 119
1

Порядок вызова конструкторов

22.11.2016, 23:03. Показов 1183. Ответов 3
Метки нет (Все метки)

Есть классы First и Second.
Класс Second наследуется от First.
Я имею ввиду:
C++
1
2
3
4
class Second: public First
{
    //...
};
Чей конструктор вызовется в первую очередь?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.11.2016, 23:03
Ответы с готовыми решениями:

Порядок вызова конструкторов
на срр-reference нашёл тему про виртуальный деструктор, но я так и не понял (да там и не...

Порядок вызова конструкторов
Всем доброго дня. Наткнулся в коде на интересные грабли: test.cpp #include "test.h" Test...

Порядок вызова конструкторов/деструкторов
Вопрос чисто теоретический. Попробую сформулировать, не ругайте если получится коряво. Например,...

Классы, наследование, порядок вызова конструкторов
допустим у меня эсть два класса class a { publc: char *n; a() { n= new char ; } ~a()

3
6992 / 6030 / 2738
Регистрация: 14.04.2014
Сообщений: 25,792
22.11.2016, 23:13 2
First, разумеется.
1
Эксперт С++
1597 / 929 / 777
Регистрация: 06.02.2016
Сообщений: 2,414
Записей в блоге: 29
22.11.2016, 23:14 3
Лучший ответ Сообщение было отмечено JackLas как решение

Решение

При создании объекта производного класса, конструкторы вызываются в порядке вниз по иерархии наследования классов, т.е. начиная с самого базового класса и заканчивая нашим производным классом.
1
С чаем беда...
Эксперт CЭксперт С++
9163 / 4679 / 1271
Регистрация: 18.10.2014
Сообщений: 10,584
22.11.2016, 23:24 4
Цитата Сообщение от JackLas Посмотреть сообщение
Чей конструктор вызовется в первую очередь?
Вызовется когда? У вас у в приведеном огрызке кода нет ничего, что могло бы привести к вызову какого-то конструктора. С чего вы взяли, что вообще что-то вызовется?

И что вы имеете в виду под "вызовется в первую очередь"?

Например, при создании объекта типа Second, вызван первым будет, разумеется конструктор Second, а он уже в свою очередь сразу вызовет конструктор First. И только после того, как отработает констуктор First, будет выполняться тело конструктора Second. То есть вызовется первым именно конструктор Second, но отрабоает до конца первым именно конструктор First. Кто в таком случае по-вашему был "вызван в первую очередь"? Что именно вы имели в виду?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.11.2016, 23:24

Порядок вызова конструкторов при множественном наследовании
Здравствуйте, меня интересует вопрос, как изменить последовательность вызова конструкторов базовых...

Порядок вызова конструкторов при присваивании объектов одного класса
Имеется код ниже. Wein dres = rom; Где dres и rom объекты класса Wein. Класс Wein имеет...

Странный порядок вызова конструкторов и передача временного обьекта в функцию в качестве неконстантной ссылки
Есть код //g++ 5.4.0 #include <iostream> struct foo { foo(int){std::cout << "int...

Очерёдность вызова конструкторов класса
У меня есть 2 класса, к примеру Base и Mod. Mod является наследником Base. Классу Mod...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.