Объектно-ориентированное программирование на языке С++. Ноткин А.М. - 18 стр.

UptoLike

Составители: 

19
public:
Basis(int x,int y){a=x;b=y;}
};
class Inherit:public Basis
{int sum;
public:
Inherit(int x,int y, int s):Basis(x,y){sum=s;}
};
Объекты класса конструируются снизу вверх: сначала базовый, по-
том компоненты-объекты (если они имеются), а потом сам производный
класс. Таким образом, объект производного класса содержит в качестве
подобъекта объект базового класса.
Уничтожаются объекты в обратном порядке: сначала производный,
потом его компоненты-объекты, а потом базовый объект.
Таким образом,
порядок уничтожения объекта противоположен по
отношению к порядку его конструирования.
Виртуальные функции.
К механизму виртуальных функций обращаются в тех случаях, когда
в каждом производном классе требуется свой вариант некоторой компо-
нентной функции. Классы, включающие такие функции, называются по-
лиморфными и играют особую роль в ООП.
Виртуальные функции предоставляют механизм позднего
(отло-
женного) или динамического связывания. Любая нестатическая функция
базового класса может быть сделана виртуальной, для чего используется
ключевое слово virtual.
Пример.
class base
{
public:
virtual void print(){cout<<“\nbase”;}
. . .
};
class dir : public base
{
public:
void print(){cout<<“\ndir”;}
};
void main()
{
base B,*bp = &B;
                                      19
      public:
      Basis(int x,int y){a=x;b=y;}
      };
      class Inherit:public Basis
      {int sum;
      public:
      Inherit(int x,int y, int s):Basis(x,y){sum=s;}
      };
      Объекты класса конструируются снизу вверх: сначала базовый, по-
том компоненты-объекты (если они имеются), а потом сам производный
класс. Таким образом, объект производного класса содержит в качестве
подобъекта объект базового класса.
      Уничтожаются объекты в обратном порядке: сначала производный,
потом его компоненты-объекты, а потом базовый объект.
      Таким образом, порядок уничтожения объекта противоположен по
отношению к порядку его конструирования.

      Виртуальные функции.
      К механизму виртуальных функций обращаются в тех случаях, когда
в каждом производном классе требуется свой вариант некоторой компо-
нентной функции. Классы, включающие такие функции, называются по-
лиморфными и играют особую роль в ООП.
      Виртуальные функции предоставляют механизм позднего (отло-
женного) или динамического связывания. Любая нестатическая функция
базового класса может быть сделана виртуальной, для чего используется
ключевое слово virtual.
      Пример.
      class base
      {
      public:
        virtual void print(){cout<<“\nbase”;}
      ...
      };

     class dir : public base
     {
     public:
       void print(){cout<<“\ndir”;}
     };
     void main()
     {
       base B,*bp = &B;