20 / 16 / 11
Регистрация: 07.12.2013
Сообщений: 244
1

Инициализация конструктора базового класса

30.03.2014, 11:09. Показов 2364. Ответов 1
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
class animal
{
public:
    animal(int a):ianimal(a){}
protected:
         int ianimal;
};
C++
1
2
3
4
5
6
7
class bird:public animal
{
public:
    bird(int a,int b):animal(a),ibird(b){}
protected:
    int ibird;
};
C++
1
2
3
4
5
6
7
class horse:public animal
{
public:
    horse(int a,int b):animal(a),ihorse(b){}
protected:
    int ihorse;
};
C++
1
2
3
4
5
6
7
class pegasus:public bird,public horse
{
public:
    pegasus(int a,int b,int c,int d,int e):horse(a,b),bird(c,d),ipegasus(e){}
private:
    int ipegasus;
};
Если мы создадим объект класса pegasus,то конструктор pegasus инициализирует конструкторы классов bird и horse,каждый из которых инициализирует конструктор класса animal.Вопрос,каким значением инициализируется конструктор animal,если в него одновременно передают значение два конструктора bird и animal.Судя по логам,конструктор animal примет значение конструктора,который вызовется последним,то есть конструктором bird.Возможно,что такой код верен,но мне кажется,что возможна путаница с аргументами.

Добавлено через 27 минут
Решил проблему виртуальным наследованием.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.03.2014, 11:09
Ответы с готовыми решениями:

Инициализация членов производного кл. из конструктора базового кл.
Добрый вечер, уважаемые форумчане! Сразу код; вопрос ниже... #include <iostream> using...

Вызвать конструктор производного класса без конструктора базового класса
Здравствуйте! У меня есть базовый класс треугольник и производный класс равносторонний...

Вызов конструктора базового класса из класса-наследника
Можно ли вне списка инициализации вызвать конструктор базового класса ? class A { int a;...

Наследование конструктора из базового класса
#include "stdafx.h" #include <iostream> #include <cstring> using namespace std; ...

1
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
30.03.2014, 11:18 2
Цитата Сообщение от Игорюня Посмотреть сообщение
Решил проблему виртуальным наследованием.
Если ещё не читали. Ромбовидное наследование
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.03.2014, 11:18
Помогаю со студенческими работами здесь

Вызов конструктора базового класса
Здравствуйте! Я вот начал изучать C# и немножечко освежил ООП. Но вот у меня вопрос. Я точно помню,...

Вызов конструктора базового класса
Приветствую всех. Создаю класс-наследник std::string. У базового класса есть конструктор копии:...

Использование конструктора базового класса наследником
Доброго дня, коллеги! Решал одну задачку и столкнулся с проблемой. По условию дан класс String,...

Вызов конструктора базового класса из порожденного
Есть Базовый класс студент: имеет поля: фамилия, адрес, тел., возраст. Порожденный класс...

Знакомство с наследованием. Вызов конструктора базового класса
В инете немного почиатл про наследование и решил сразу перейти к практике Есть два класа point и...

Инициализация в производном классе переменной из базового класса
Привет подскажите пожалуйста, как правильно реализовать такое. Есть член переменная базового...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru