Объектно-ориентированное программирование. Сивохин А.В - 48 стр.

UptoLike

48
Объединения не могут быть ни базовыми, ни порожденными классами.
Структуры могут участвовать в иерархии классов.
Пример:
class B1
{ protected : int b1;
public:
// Такой конструктор может одновременно служить и
// конструктором по умолчанию:
// если аргументы не указаны, то b1=0.
B1 (int x=0) {b1=x; }
};
class B2
{ protected : int b2;
public:
B2 (int y=0) {b2=y; }
};
class D: public B1, public B2 // Множественное наследование
{private: int d; // Данные D - b1, b2, d
public:
//В данном конструкторе использован список инициализаций
D (int x, int y, int z=0): B1(x), B2(y) {d=z;}
};
Полиморфизм
Свойство
полиморфизма (дословно - "множественность форм") означает, что
функциональность базовых классов может быть изменена в классах-наследниках.
Например, в иерархии графических объектов (точка, линия, квадрат,
прямоугольник, окружность, эллипс и т.д.) каждый объект имеет собственный
метод вывода изображения на экран Draw. Таким образом, каждый объект будет
обрабатывать запрос на вывод изображения согласно
своему типу. Полиморфизм
реализуется в языке Си++ с помощью виртуальных функций.
Виртуальные функции. "Чистые" виртуальные функции
Виртуальные функции позволяют классам-наследникам определять различные
версии функций базового класса. Для описания виртуальных функций используется
ключевое слово virtual. Механизм виртуальных функций работает в тех случаях,
когда тип и аргументы переопределяемой функции одинаковы в
базовом и
                                                                            48
     Объединения не могут быть ни базовыми, ни порожденными классами.
Структуры могут участвовать в иерархии классов.
     Пример:
  class B1
  { protected : int b1;
    public:
  // Такой конструктор может одновременно служить и
  // конструктором по умолчанию:
  // если аргументы не указаны, то b1=0.
     B1 (int x=0) {b1=x; }
  };
  class B2
  { protected : int b2;
    public:
     B2 (int y=0) {b2=y; }
  };
  class D: public B1, public B2 // Множественное наследование
  {private: int d; // Данные D - b1, b2, d
   public:
  //В данном конструкторе использован список инициализаций
   D (int x, int y, int z=0): B1(x), B2(y) {d=z;}
  };


                                Полиморфизм
    Свойство полиморфизма (дословно - "множественность форм") означает, что
функциональность базовых классов может быть изменена в классах-наследниках.
Например, в иерархии графических объектов (точка, линия, квадрат,
прямоугольник, окружность, эллипс и т.д.) каждый объект имеет собственный
метод вывода изображения на экран Draw. Таким образом, каждый объект будет
обрабатывать запрос на вывод изображения согласно своему типу. Полиморфизм
реализуется в языке Си++ с помощью виртуальных функций.


           Виртуальные функции. "Чистые" виртуальные функции
    Виртуальные функции позволяют классам-наследникам определять различные
версии функций базового класса. Для описания виртуальных функций используется
ключевое слово virtual. Механизм виртуальных функций работает в тех случаях,
когда тип и аргументы переопределяемой функции одинаковы в базовом и