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

UptoLike

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

16
Лабораторная работа № 2
НАСЛЕДОВАНИЕ И ВИРТУАЛЬНЫЕ ФУНКЦИИ
Цель. Получить практические навыки создания иерархии классов и
использования статических компонентов класса.
Основное содержание работы
Написать программу, в которой создается иерархия классов. Вклю-
чить полиморфные объекты в связанный список, используя статические
компоненты класса. Показать использование виртуальных функций.
Краткие теоретические сведения
Статические члены класса.
Такие компоненты должны быть определены в классе, как статиче-
ские (static). Статические данные классов не дублируются при создании
объектов, т.е. каждый статический компонент существует в единственном
экземпляре. Доступ к статическому компоненту возможен только после
его инициализации. Для инициализации используется конструкция
тип имя_класса : : имя_данного инициализатор;
Например, int complex : : count = 0;
Это предложение должно быть размещено в глобальной области по-
сле определения класса. Только при инициализации статическое данное
класса получает память и становится доступным. Обращаться к статиче-
скому данному класса можно обычным образом через имя объекта
имя_объекта.имя_компонента
Но к статическим компонентам можно обращаться и тогда, когда
объект класса еще не существует. Доступ к статическим компонентам воз-
можен не только через имя объекта, но и через имя класса
имя_класса : : имя_компонента
Однако так можно обращаться только к public компонентам.
Для обращения к private статической компоненте извне можно с по-
мощью статических компонентов-функций. Эти функции можно вы-
звать через имя класса.
имя_класса : : имя_статической_функции
Пример.
#include <iostream.h>
class TPoint
{
double x,y;
static int N; // статический компонент данное : количество точек
public: