Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
Darclaw
0 / 0 / 0
Регистрация: 27.10.2012
Сообщений: 1
#1

Порядок вызова конструкторов при множественном наследовании

30.10.2012, 22:34. Просмотров 2795. Ответов 2
Метки нет (Все метки)

Здравствуйте, меня интересует вопрос, как изменить последовательность вызова конструкторов базовых классов во время создания объекта класса с множественным наследованием. Я слышал что это можно сделать при помощи списка инициализации конструктора, но на деле у меня конструкторы вызываются в той последовательности, которой они описаны при объявлении класса.

Например вот такой метод:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
class A
{
    A() {}
};
class B
{
    B() {}
};
 
class C: public A, B
{
    C(): B(), A() {}
};
Может кто подскажет как сделать что бы конструктор класса В вызвался раньше, чем конструктор А, без изменения описания класса С.
Заранее спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2012, 22:34
Ответы с готовыми решениями:

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

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

Порядок вызова конструкторов
Есть классы First и Second. Класс Second наследуется от First. Я имею ввиду:...

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

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

2
I.M.
567 / 550 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
30.10.2012, 22:43 #2
Вроде бы никак.
Только если А является наследником В)
0
Quadro9
32 / 32 / 1
Регистрация: 23.07.2009
Сообщений: 170
24.07.2015, 15:32 #3
Чтобы раньше вызывался конструктор B() надо в списке наследования указать первым класс B
class C: public B, public A {};
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.07.2015, 15:32

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

Инициализация при множественном наследовании
Имеется иерархия типов. Во главе: базовый класс-интерфейс, далее один базовый...

Конструктор при множественном наследовании
#include <string> class Worker // an abstract base class { private: ...


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

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

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