Защищенное целочисленное свойство public. Функция для задания в рамочке. Инициализирующий конструктор

Страницы работы

Содержание работы

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() и его свойств

- задание в рамочке

}

Похожие материалы

Информация о работе