Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.10.2015, 13:00   #1
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию Ромб в множественном наследовании

Добрый день !
Хотел уточнить для себя.
В данном случае конструктор класса А с параметром нужно вызывать из конструктора класса D ?

Код:
D(int a, int b) : A(a*a), B(a), C(b), x(a+b) {cout<<"Конструктор D"<<endl;}

http://ideone.com/yvRoiJ
RAFA91 вне форума Ответить с цитированием
Старый 05.10.2015, 12:35   #2
RAFA91
Заблокирован
 
Регистрация: 06.02.2011
Сообщений: 1,999
По умолчанию

Скажите пожалуйста , почему при выполнении

c->B::func_1(); или c->С::func_1(); из мейна получаю косяк ?

могу только из метода класса D получить доступ к func_1() класса В или С

Код:
#include <iostream>
using namespace std;

class A
{
public:
A() {cout << "Конструктор А" << endl; }
virtual void func_1() = 0;
};
void A::func_1() {}
class B : public virtual A
{
public:
B() {cout << "Конструктор B" << endl; }
virtual void func_1() { cout << "1111111111" << endl; }
};
class C : public virtual A
{
public:
C() {cout << "Конструктор C" << endl; }
virtual void func_1() { cout << "22222222" << endl; }
};
class D : public B, public C
{
public:
D() {cout << "Конструктор D" << endl; }
virtual void func_1() {
cout << "33333333333"<<endl; C::func_1();
}
};

int main() {
A *c = new D;
c->func_1();
return 0;
}
RAFA91 вне форума Ответить с цитированием
Старый 05.10.2015, 13:39   #3
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Потому что у вас *c имеет тип A а него нет родителей.
waleri вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С квадратной матрицы получить ромб путем отсечение углов по n элементов. Элементы, которыми заполнено ромб переписать в вых. файл Juliks Паскаль, Turbo Pascal, PascalABC.NET 10 29.12.2012 20:50
Защита во множественном доступе Табита Microsoft Office Excel 1 22.12.2011 22:28
стек в наследовании настюх Помощь студентам 0 10.12.2011 15:26
графика. ромб. оч странный ромб aka_faith Паскаль, Turbo Pascal, PascalABC.NET 19 11.06.2009 02:57
Удалить слова в множественном числе John Pepper Microsoft Office Excel 1 12.01.2009 18:41