Darclaw
1

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

30.10.2012, 22:34. Показов 4808. Ответов 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() {}
};
Может кто подскажет как сделать что бы конструктор класса В вызвался раньше, чем конструктор А, без изменения описания класса С.
Заранее спасибо

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

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.10.2012, 22:34
Ответы с готовыми решениями:

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

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

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

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

2
572 / 555 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
30.10.2012, 22:43 2
Вроде бы никак.
Только если А является наследником В)
0
32 / 32 / 1
Регистрация: 23.07.2009
Сообщений: 170
24.07.2015, 15:32 3
Чтобы раньше вызывался конструктор B() надо в списке наследования указать первым класс B
class C: public B, public A {};
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.07.2015, 15:32

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

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

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

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

Неоднозначность при множественном наследовании
Привет всем, столкнулся с проблемой при множественном наследовании классов. Надеюсь, кто-нибудь...


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

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

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