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

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

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

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

30.10.2012, 22:34. Просмотров 2337. Ответов 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++
Имеется код ниже. Wein dres = rom; Где dres и rom объекты класса Wein. Класс Wein имеет все конструкторы по умолчанию....

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

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

Порядок вызова конструкторов - C++
Есть классы First и Second. Класс Second наследуется от First. Я имею ввиду: class Second: public First { //... };

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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 {};
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.07.2015, 15:32
Привет! Вот еще темы с ответами:

Конструктор при множественном наследовании - C++
#include <string> class Worker // an abstract base class { private: std::string fullname; long id; public: ...

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

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

Конструкторы с параметрами при множественном наследовании - C++
у меня есть класс, quotes который является базовым для двух классов moving_average и rsi (наследуются от quotes чз virtual) эти два класса...


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

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

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