Программирование на С++. Рейзлин В.И. - 17 стр.

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;