Компонентные данные

1) При обращении к данным из компонентных функций используется только

имя компонента

2) При обращении к компонентам из операторов, выполняемых вне класса

(если позволяет статус доступа)

Имя объекта. имя компонента

указатель на объект -> имя компонента

3) Данные класса (а также компонентные функции) не обязательно должны быть описаны до первого обращения к ним в классе. Т.е. все компоненты класса видны во всех операторах его тела.

В связи с этим отличием введена особая область видимости – класс (наряду с файлом, блоком и функцией).

4) Каждый объект класса имеет свою копию данных класса, кроме статических данных. Статический компонент (static) не тиражируется, существует в единственном экземпляре

Статические компоненты класса необходимо описывать и инициировать

вне определения класса как глобальные переменные.

Обращаться к ним можно до определения первого объекта класса с

помощью квалифицированного имени:

Имя класса::имя компонента

Если объекты объявлены, то к статическому компоненту можно

обращаться стандартно, и всякое изменение статического компонента в одном объекте становится видно во всех объектах.

Если статический элемент имеет статус private или protected к нему можно обращаться только из компонентных функций. Если надо обратиться до определения объектов, надо ввести статическую компонентную функцию, со спецификатором static, которую можно вызывать до определения объектов с помощью квалифицированного имени:

Имя класса::имя статической функции (параметры)

Пример:

Class cot

{ …;

static int N; // статический компонент

public: …

static void count(int value) { N = value};

};

int cot::N=0; // внешняя инициализация статического элемента


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: