РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
21 of 815 menu

Ключевое слово static

Ключевое слово static в языке C++ имеет несколько значений в зависимости от контекста использования. Оно может применяться к локальным переменным внутри функций, к глобальным переменным и функциям, а также к членам классов. В первом случае оно продлевает время жизни локальной переменной до конца выполнения программы, сохраняя её значение между вызовами функции. Во втором - ограничивает область видимости переменной или функции текущим файлом. В третьем - делает член класса общим для всех объектов этого класса, а не принадлежащим конкретному экземпляру.

Синтаксис

// Локальная статическая переменная static тип имя; // Глобальная статическая переменная или функция static тип имя; // Статический член класса class ClassName { static тип имя; };

Пример

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

#include <iostream> using namespace std; void counter() { static int count = 0; count++; cout << count << endl; } int main() { counter(); counter(); counter(); return 0; }

Результат выполнения кода:

1 2 3

Пример

Давайте создадим класс, в котором есть статический член. Такой член принадлежит самому классу, а не его объектам, и существует в единственном экземпляре:

#include <iostream> using namespace std; class MyClass { public: static int value; }; int MyClass::value = 10; int main() { MyClass obj1; MyClass obj2; cout << obj1.value << endl; cout << obj2.value << endl; MyClass::value = 20; cout << obj1.value << endl; cout << MyClass::value << endl; return 0; }

Результат выполнения кода:

10 10 20 20

Пример

Давайте создадим статическую локальную переменную внутри функции, которая инициализируется только один раз, а затем просто возвращает накопленное значение:

#include <iostream> using namespace std; int getNextId() { static int id = 100; return id++; } int main() { cout << getNextId() << endl; cout << getNextId() << endl; cout << getNextId() << endl; return 0; }

Результат выполнения кода:

100 101 102

Смотрите также

  • ключевое слово const,
    которое запрещает изменение переменной
  • ключевое слово extern,
    которое объявляет переменную из другого файла
  • ключевое слово constexpr,
    которое вычисляет значение на этапе компиляции
  • ключевое слово namespace,
    которое группирует код в логические области
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить