Через указатель на существующий представитель класса с помощью операции косвенного доступа к элементу (стрелки).
Для существующего представителя класса с помощью операции доступа к элементу (точки).
В языке С выделялось несколько различных типов области действия: глобальная, файл, функция, блок. В C++'вводится новый вид области действия класс. Имена элементов класса расположены в области действия класса, и к ним можно обращаться из функций-элементов данного класса. Кроме того, получить доступ к элементам класса можно в следующих случаях:
Класс как область действия
Здесь обе функции Get () определены как встроенные, а функция SetPoint () определяется вне тела класса и не является встроенной.
assert(y >= 0 && у < MaxY);
assert(x >=0 && x < MaxX);
void Point::SetPoint(int x, int y)
struct Point { // Класс.точек.
const int MaxX = 200; // Максимальные значения координат.
Функция-элемент класса объявляется внутри определения класса. Там же может быть расположено и оределение тела функции. В этом случае функцию-элемент называют встроенной и компилятор будет генерировать ее встроенное расширение на месте вызова. Если определение функции располагается вне тела класса, то к ее имени добавляется префикс, состоящий из имени класса и операции разрешения области действия. В этом случае функцию-элемент также можно определить как встроенную с помощью ключевого слова inline. Вот несколько модифицированный класс Point из предыдущей главы вместе с его реализацией:
Элементы-функции
Элемент данных класса может быть указателем или ссылкой на сам класс.
Элемент данных класса не может быть представителем самого класса.
Они могут быть перечислениями, битовыми полями, а также объектами ранее объявленных классов.
Они не могут быть объявлены как auto, extern или register.
Суммируем и дополним то, что говорилось об элементах данных в предыдущей главе. Элементы данных аналогичны элементам структур языка С. Стоит добавить следующее:
Как уже говорилось раньше, элементы класса распадаются на две категории. Это данные, инкапсулирующие состояние объектов, и код, отвечающий за их поведение и реализуемый в форме функций-элементов класса.
Мы переходим теперь к подробному изучению классов, включая, естественно, и аспекты их реализации.
В прошлой главе мы показали, как определяются простейшие классы C++. То, что содержится в приведенном коде это интерфейс класса. В самом определении класса объявляются обычно лишь прототипы функций-элементов. Чтобы класс стал работоспособным, необходима еще его реализация. Реализация класса, располагаемая часто в отдельном файле, содержит код его функций-элементов, а также некоторые элементы данных, называемые статическими.
Комментариев нет:
Отправить комментарий