Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Rabochy_stol / 18 статические члены классы

.docx
Скачиваний:
15
Добавлен:
31.05.2015
Размер:
16.22 Кб
Скачать

18 статические члены данных

Статические члены класса Переменные и члены класса, объявленные с модификатором доступа static, называются статическими членами класса. Cтатические переменные и методы доступны без создания объекта данного класса. Имя статической переменной квалифицируется именем класса с использованием операции принадлежности :: , а не именем экземпляра класса. Например: class A { public: static int iStat; }; int main(int argc, char* argv[]) { A:: iStat = 123;} Статические методы могут вызывать и использовать только другие статические методы и статические переменные. Из статического метода нельзя выполнять вызов не статического метода - члена класса. Статическую переменную можно рассматривать как аналог глобальной переменной, которая связана с конкретным классом. Часто статические переменные называют переменными класса, а не статические переменные - переменными экземпляра. Для статических переменных могут использоваться указатели. Например: class A{ public: static int iStatVar; }; int main(int argc, char* argv[]){ int A:: iStatVar = 0; int *piStatVar = &A:: iStatVar;} При использовании статических переменных указатели всегда являются указателями на существующий тип (в данном примере на тип int), а не на тип класса. Для того чтобы создать и использовать статическую переменную, следует:

  1. Объявить (как правило, в заголовочном файле) статическую переменную как член класса.

  1. Для выделения памяти под эту переменную ее повторно следует объявить в модуле компиляции, в котором она будет использоваться, квалифицируя имя статической переменной именем класса.

  1. Выполнить инициализацию статической переменной (по умолчанию статическая переменная типа int имеет значение 0).

Инициализацию статической переменной можно выполнять в теле конструктора в том случае, если при создании объекта с использованием этого конструктора память под статическую переменную уже выделена. Однако инициализировать статическую переменную через конструктор в форме  имя_класса::имя_конструктора :  имя_стат_переменной(значение) { } нельзя ни в каком случае. Для того чтобы создать статический метод - член класса в среде Visual C++, достаточно выделить в окне Class View секцию с именем класса, в который будет вставлен создаваемый метод, и выполнить команду контекстного меню Add|Add Function. А затем определить тип и имя создаваемого метода, список параметров, и отметить флажок Static, указывающий на то, что создаваемая функция будет статической. В результате выполненных действий среда Visual C++ добавит в заголовочный файл класса прототип создаваемой статической функции, а в файл реализации - код реализации создаваемой статической функции.