Опредеение всех классов на C++, начиная от самых базовых и заканчивая самыми производными

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

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

Определим все классы на C++, начиная от самых базовых и заканчивая самыми производными. Верхние два класса (ни от кого не наследуют):

class A { protected: 

int a; // защищѐнное свойство public:

A(int a0) { a = a0; } // конструктор, который задаѐт a void operator++() { cout << a; } // вывод свойства на экран

};  class B { protected: 

int b; // защищѐнное свойство public:

B(int b0) { b = b0; } // конструктор, который задаѐт b void operator++() { cout << b; } // вывод свойства на экран

};

Наследник C:

class C : public A, private B // указали родителей с типом наследования

{ protected:

int c; public:

C(int a0, int b0, int c0) : A(a0), B(b0) { c = c0; } ^ конструктор с тремя параметрами, первые два для родителей, третий для себя

^ вызвали конструкторы родителей, чтобы сообщить им их свойства

^ присвоили себе своѐ свойство virtual void operator++() {

// здесь слово virtual, чтобы показать, что метод может быть переопределѐн в классах-наследниках. Кстати, оно должно здесь стоять и в классах А и В.

A::operator++(); // вывели свойство A, вызвав метод объекта A

B::operator++(); // вывели свойство B так же cout << c; // вывели своѐ свойство

} }; class F : public D, private E { protected:

int f; public:

F(int a0, int b0, int c0, int d0, int e0, int f0) : D(a0, b0, c0, d0), E(e0) { f = f0; } virtual void operator++() {

D::operator++(); E::operator++(); cout << f;

} };

Как сделать main:

void main() {

F obj(1, 2, 3, 4, 5, 6); // создали объект obj класса F со всеми свойствами

++f; // вывели все свойства

}

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

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