36
ЛАБОРАТОРНАЯ РАБОТА № 8.
СТАТИЧЕСКИЕ ПОЛЯ И МЕТОДЫ
Ключевые слова: статическое поле, статический метод, код ошибки.
Цель: закрепить опыт по перегрузке операторов, а также познако-
миться со статическими полями и методами класса, а также научиться
контролировать ситуации возникновения ошибок в методах класса через
атрибут класса error.
Спецификатор static описывает статические атрибуты и методы
класса, которые можно рассматривать как глобальные переменные и функ-
ции, доступные в пределах класса.
Статические атрибуты применяются для хранения данных, общих
для всех объектов класса, например, количества объектов или ссылки на
разделяемый всеми объектами ресурс. Эти атрибуты существуют для всех
объектов класса в единственном экземпляре, то есть не дублируются.
Особенности статических атрибутов:
Память под статический атрибут выделяется один раз при его иници-
ализации, независимо от числа созданных объектов (и даже при их
отсутствии), инициализируется с помощью операции доступа к обла-
сти действия и не учитывается при определении размера объекта
с помощью операции sizeof.
Статические атрибуты доступны как через имя класса, так и через имя
объекта.
Прежде чем использовать статический атрибут, надо присвоить ему
начальное значение (что следует делать в .cpp файле реализации
класса, а не где-то еще): int IntArray::count = 0;
На статические атрибуты распространяется действие спецификаторов
доступа, поэтому статические поля, описанные как private, нельзя
изменить с помощью операции доступа к области действия. Это дела-
ется с помощью статических методов. Эти методы могут обращаться
непосредственно только к статическим атрибутам и вызывать только
другие статические методы класса, потому что им не передается скры-
тый указатель this.
Обращение к статическим методам производится так же, как к стати-
ческим атрибутам, – через имя класса:
37
void main()
{
cout<
intArray A, B, C;
cout<
}
… либо, если создан хотя бы один объект класса, через имя объекта.
Достарыңызбен бөлісу: |