ВУЗ:
Составители:
Рубрика:
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;
Страницы
- « первая
- ‹ предыдущая
- …
- 16
- 17
- 18
- 19
- 20
- …
- следующая ›
- последняя »