Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 5.00
Darclaw
Сообщений: n/a
30.10.2012, 22:34     Порядок вызова конструкторов при множественном наследовании #1
Здравствуйте, меня интересует вопрос, как изменить последовательность вызова конструкторов базовых классов во время создания объекта класса с множественным наследованием. Я слышал что это можно сделать при помощи списка инициализации конструктора, но на деле у меня конструкторы вызываются в той последовательности, которой они описаны при объявлении класса.

Например вот такой метод:
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() {}
};
Может кто подскажет как сделать что бы конструктор класса В вызвался раньше, чем конструктор А, без изменения описания класса С.
Заранее спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2012, 22:34     Порядок вызова конструкторов при множественном наследовании
Посмотрите здесь:

C++ Конструктор при множественном наследовании
C++ Порядок вызова конструкторов
Конфликт имен при множественном наследовании struct C++
C++ Порядок вызова конструкторов/деструкторов
Помогите найти ошибку при множественном наследовании C++
C++ Вызов конструкторов/деструкторов при наследовании
C++ Является ли правильным проектирование классов с методами у которых есть определённый порядок вызова
Инициализация при множественном наследовании C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
30.10.2012, 22:43     Порядок вызова конструкторов при множественном наследовании #2
Вроде бы никак.
Только если А является наследником В)
Quadro9
 Аватар для Quadro9
32 / 32 / 1
Регистрация: 23.07.2009
Сообщений: 170
24.07.2015, 15:32     Порядок вызова конструкторов при множественном наследовании #3
Чтобы раньше вызывался конструктор B() надо в списке наследования указать первым класс B
class C: public B, public A {};
Yandex
Объявления
24.07.2015, 15:32     Порядок вызова конструкторов при множественном наследовании
Ответ Создать тему
Опции темы

Текущее время: 15:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru