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

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

Войти
Регистрация
Восстановить пароль
 
weidmann
0 / 0 / 0
Регистрация: 02.12.2013
Сообщений: 20
#1

Конфликт имён в ромбовидном наследовании - C++

06.12.2013, 00:19. Просмотров 175. Ответов 0
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class A {
private:
int a;
public:
A(a0) : a(a0) {}
}
class B1 : virtual public A {
private:
int b;
int c;
public:
B1(a0, b0, c0) : A(a0), b(b0), c(c0) {}
}
class B2 : virtual public A {
private:
int b;
int d;
public:
B2(a0, b0, d0) : A(a0), b(b0), d(d0) {}
}
class C : public B1, public B2 {
public:
C(a0, b0, c0, d0) : A(a0), B1(a0, b0, c0), B2 (a0, b0, d0) { cout << b; }
}
В общем: "неоднозначный уровень доступа b".

Додумался только добавить в класс C собственное поле b:
C++
1
2
3
4
5
6
class C : public B1, public B2 {
private:
int b;
public:
C(a0, b0, c0, d0) : A(a0), B1(a0, b0, c0), B2 (a0, b0, d0), b(b0) { cout << b; }
}
Может есть способы получше или какие-то альтернативы?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2013, 00:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Конфликт имён в ромбовидном наследовании (C++):

Проблемы при ромбовидном наследовании - C++
У меня есть ромбовидное наследование. От Ship наследуются виртуально GuardShip и TransShip, а TransGuardShip наследуется от них. ...

Конфликт имён - C++
Добрый день. При запуске программы возникает следующая ошибка: Сейчас изучаю книгу Страуструпа &quot;Программирование. Принципы и...

Конфликт пространств имён - C++
Есть у меня два разных класса, имеющими одно название. И есть другие две библиотеки, использующие эти классы (каждая свой). Я...

Конструкторы в списках и конфликт имён - C++
Здравтсвуйте, уважаемые программисты, меня волнуют следующие вопросы: 1) Мне нужны примеры применения конструкторов в списках. Я нашёл в...

Конфликт имен при множественном наследовании struct - C++
Уважаемые гуру, помогите разрешить конфликт имён в приведённом ниже примере, не изменяя структуру наследования. Заранее спасибо! ...

Найти причины и способы исправления ошибки (конфликт имён?) - C++
Пишу программу для загрузки пары в стек: #include&lt;iostream&gt; using namespace std; #include&lt;cstdlib&gt; // для exit() ...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2013, 00:19
Привет! Вот еще темы с ответами:

Ошибка в наследовании - C++
Всем привет. Есть такой код: #include &lt;iostream&gt; using namespace std; class A { public : A(){}

Вопрос о наследовании - C++
Извините за ламерский вопрос, но я в тупике. Такая проблема. Есть два класса &quot;Systema&quot; и &quot;Sensors&quot;. Как сделать так чтоб в класс...

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

не до понимание в наследовании - C++
у нас есть допустим 2 класса. Один circle, другой Point. Circle наследует от Point. Тоесть Point базовый класс а Circle производный. ...


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

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

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