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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 5.00
Darclaw
Сообщений: n/a
#1

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

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
30.10.2012, 22:43     Порядок вызова конструкторов при множественном наследовании #2
Вроде бы никак.
Только если А является наследником В)
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     Порядок вызова конструкторов при множественном наследовании
Ответ Создать тему
Опции темы

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