IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Множественное наследование, С++
сообщение
Сообщение #1


Знаток
****

Группа: Пользователи
Сообщений: 306
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


Вот текст программы:


#include<iostream>
#include<conio.h>

using namespace std;

class Base1
{ int i;

public:
Base1()
{ i=0;
cout<<"Run Base1 Constructor!"<<endl;
}

Base1(int I)
{ i=I;
cout<<"Run base1 ExtraConstructor!"<<endl;
}

};

class Base2
{ char M[20];

public:
Base2()
{
M = 'empty';
cout<<"run Base2 Constructor!"<<endl;
}

Base2(char* m)
{ strcpy(M,m);
cout<<"Run Base2 extraConstructor!"<<endl;
}

};

class Derived:public Base1, public Base2
{ char ch;

friend ostream& operator << (ostream&, const Derived&);

public:
Derived()
{ ch="V";
cout<<"Run Derived Constructor!"<<endl;
}

Derived(char CH, char* m, int I)
{ ch=CH;
strcpy(M,m);
i=I;
cout<<"Run Derived ExtraConstructor!"<<endl;
}

};

ostream& operator << (ostream& os, const Derived& obj)
{
os <<
"ch = " << obj.ch <<endl <<"M = " << obj.M <<endl <<"i = " << obj.d <<endi;
return os;
}

int main()
{
Derived Der;
cout<<Der<<endl;
}


Как инициализировать поле M словом 'empty' в конструкторе Base2()? Как реализовать интерфейсные функции в классах Base1, Base2, Derived, которые позволяли бы изменить или прочесть значения i, M, ch соответствующих классов?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 19.04.2024 20:06
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name