Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
19-22,37.docx
Скачиваний:
7
Добавлен:
21.09.2019
Размер:
44.88 Кб
Скачать

Int value;

public:

example(){ value=1; }

protected:

Int get_value(void){ return value; }

private:

Int last_value(void);

};

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

Атрибут доступа

Значение

public

Можно использовать как внутри класса, так и вне. Доступ извне осуществляется через имя объекта и оператор расширения области видимости.

private

Доступ только в пределах данного класса и классов друзей.

protected

Доступ внутри класса, его друзей, а также внутри классов наследников и их друзей.

При создании класса часть его членов "прячется" с помощью атрибута доступа private, оставляя возможность манипуляции только с членами класса, описанными как public. Доступ внутри класса означает, что внутри тела какой-либо функции-члена класса другие члены этого же класса (данные или функции) являются доступными.

Данные-члены:

  • могут быть описаны как static; статические члены класса не копируются при создании объекта, а остаются в единственном экземпляре для всех объектов; статические члены не могут быть описаны как auto, register или extern;

  • могут быть описаны как const; такие члены класса могут быть инициализированы только один раз и после этого больше не могут быть изменены;

  • могут быть описаны как mutable; изменяемые, даже если объект описан как const;

  • могут быть описаны как volatile; изменяемые;

  • инициализируются конструктором и уничтожаются деструктором.

Функции-члены:

  • могут быть описаны как static; статические функции могут манипулировать статическими данными, не могут быть описаны как const или virtual;

  • могут быть описаны как const; не могут изменять значения данных и могут возвращать ссылку или указатель на данные, описанные как const. Только такие функции могут вызываться у объекта-константы;

  • могут быть описаны как volatile; только они могут вызываться для volatile объекта;

  • могут быть описаны как virtual;

  • могут быть описаны как inline;

  • могут быть перегружены только функциями-членами того же класса;

  • имеют доступ ко всем данным-членам класса;

  • представляют единственную возможность доступа к private-членам своего класса;

  • могут быть определены как внутри (аналог inline), так и вне класса;

Пример определения функций-членов класса:

class example : public base_example {

int value;

public:

example() { value=1; }

int get_value(void) { return value; }

int last_value(void);

};

inline int example::last_value(void) {

value=0;

return value;

}

Доступ к элементам класса T извне возможен только через объект класса T в совокупности с соответствующим оператором (".", "->"). Внутри методов класса при обращении к тем или иным членам класса (методам или атрибутам) всегда предполагается специальный указатель. Этот специальный указатель можно использовать и явно – это this. При каждом вызове функции-члена this автоматически (неявно) передается в вызываемую функцию (за исключением статических функций).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]