Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Статические поля применяются для хранения данных, общих для всех объектов класса, например, количества объектов или ссылки на разделяемый всеми объектами ресурс. Эти поля существуют для всех объектов класса в единственном экземпляре, то есть не дублируются.
Ниже перечислены особенности статических полей.
· Память под статическое поле выделяется один раз при его инициализации независимо от числа созданных объектов (и даже при их отсутствии) и инициализируется с помощью операции доступа к области действия:
class A{
public:
static int count; // Объявление в классе
};
...
int A::count; // Определение в глобальной области
// По умолчанию инициализируется нулем
// int A::count = 10; Пример инициализации произвольным значением
· Статические поля доступны как через имя класса, так и через имя объекта:
A *a, b;
...
cout << A::count << a->count << b.count; // Будет выведено одно и то же
· На статические поля распространяется действие спецификаторов доступа, поэтому статические поля, описанные как private, нельзя изменить с помощью операции доступа к области действия, как описано выше. Это можно сделать только с помощью статических методов.
· Память, занимаемая статическим полем, не учитывается при определении размера объекта с помощью операции sizeof.
Дата публикования: 2014-11-28; Прочитано: 248 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!