class A { protected:
int a; //защищенное целочисленное свойство public:
A(int x){a = x;}; //инициализирующий конструктор
A operator *= (A&) //оператор вывода *=(не знаю почему *= а не <<) {cout << a; return 0;
}
} class B { protected: int b; public:
void f(){}; //фукнция для задания в рамочке
B(int y){b = y;};
B operator *= (B&) {cout <<b; return 0;
}
}
//класс С наследует у А и В как public и private
class C : public A,private B
{ protected: int c; public:
C(int x,int y,int z) : A(x),B(y) {c = z}; //A(x),B(x) - используем конструкторы классов А и В для инициализации унаследованных свйоств
С operator *= (C&)
{ cout << c; A::operator *=(NULL); B::operator *=(NULL); return 0;
}
//Так как С наследует у B как private то функция член f() которая нам нужна для выполнения задания, будет закрытой и мы не сможем ее вызвать впоследствии в классе F, поэтому ее необходимо сделать открытой т.е.
public функцией void f()
{
B::f(); //функция f() описанная в B
}
}; class D : private C
{ protected: int d; public: D(int x,int y,int z,int i) : C(x,y,z) {d = i};
D operator *= (D&)
{
cout << d;
C::operator *=(NULL); return 0;
}
//Т.к. D наследует у С как private то с функцией f() нужно проделать аналогичную штуку void f() {
C::f();
}
} class E { protected: int e; public:
E(int x) : {e = x};
E operator *= (E&) {cout <<e; return 0;
}
} class F : public D,private E
{ protected: int f; public:
F(int x,int y,int z,int i,int j,int k) :
D(x,y,z,i),E(j){f = k};
F operator *= (F&)
{
cout << f;
D::operator *=(NULL); E::operator *=(NULL); return 0;
}
void show()
{ operator *=(NULL); f();
} //объект класса F с выводом f() и его свойств
- задание в рамочке
}
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.