Статические элементы класса (функции или элементы данных) являются общими для всех объектов данного класса. Изменение значения статического элемента в одном объекте приводит к изменению значения этого элемента во всех остальных объектах данного класса. При объявлении статического элемента (функции) класса используется служебное слово static, например:
...public :
static float prize;...
После того как статический элемент объявлен внутри класса, этот элемент объявляется вне класса с помощью оператора глобального разрешения (::), например:
...float имя_класса: : prize ; ...
Статические элементы можно использовать в программе до объявления объекта.
Пример
#include<iostream. h>
class zp
{
private:
char name [64] ;
float sal;
public:
static float prize; };//статический элемент };
float zp::prize;
void main (void)
{zp::prize=500.5;
cout«"npeмия: "«zp::prize«" рублей, "«endl;
}
Из примера видно, что при обращении к статическому элементу в программе нужно указать имя класса, оператор глобального разрешения и имя статического элемента (в нашем случае zp::prize).
ИСПОЛЬЗОВАНИЕ СТАТИЧЕСКИХ ФУНКЦИЙ-ЭЛЕМЕНТОВ
Предыдущая программа иллюстрировала использование статических элементов данных. Подобным образом C++ позволяет вам определить статические функции-элементы (методы). Если вы создаете статический метод, ваша программа может вызывать такой метод, даже если объекты не были созданы. Например, если класс содержит метод, который может быть использован для данных вне класса, вы могли бы сделать этот метод статическим. Ниже приведен класс menu, который использует esc-последовательность драйвера ANSI для очистки экрана дисплея. Если в вашей системе установлен драйвер ANSI.SYS, вы можете использовать метод clear_screen для очистки экрана. Поскольку этот метод объявлен как статический, программа может использовать его, даже если объекты типа menu не существуют. Следующая программа CLR_SCR.CPP использует метод clear_screen для очистки экрана дисплея: