Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Такой элемент должен быть определен в классе как статический



Он должен быть определен со спецификатором 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...