![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Он должен быть определен со спецификатором static (выделяется память при его определении и сохраняется до окончания действия программы)
Статический элемент класса не дублируется при создании новых объектов класса.
Каждый статический элемент существует в единственном экземпляре и память на него выделяется при его инициализации.
Инициализация статического компонента размещается в глобальной области сразу после определения класса, с этого момента статический элемент становится доступным даже до объявления объектов данного класса.
<тип компонента > <имя класса>:: <имя компонента> <инициализатор>
Обращение к статическому компоненту:
Обращение к статическому компоненту класса возможно до определения первого объекта класса по квалификационному имени
<имя класса>:: <имя компонента>
После объявления объектов можно также обращаться как к обычному компоненту класса:
<имя объекта>. <имя класса>::<имя компонента>
<имя объекта>. <имя компонента>
При этом любые изменения (в любом объекте) статического элемента – становятся общими для всех объектов данного класса.
Пример
#include <iostream.h>
struct goods // класс “ товар”
{ char name[40]; // наименование товара
float price; // закупочная цена
static int percent; // торговая наценка – статический компонент
// компонентные функции:
void vvod () // ввод данных о товаре
{ cin >> name; cin>> price; }
void vivod () // вывод данных о товаре
{ cout <<”\n” << name;
cout <<”: Розничная цена =”
<< price*(1.0+ goods::percent*0.01);
}
};
int goods::percent =25; // инициализация статического компонента
// статический элемент получает память
// и становится доступным даже без объявления
// объектов
Дата публикования: 2014-11-28; Прочитано: 235 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!