Статическая переменная в C++ — это переменная, которая сохраняет своё значение между вызовами функции или на протяжении всего времени выполнения программы. 1 В отличие от обычных (автоматических) переменных, память для статической переменной выделяется только один раз, и её значение сохраняется между различными вызовами функции. 1
Статические переменные могут быть объявлены:
- Внутри функции. 4 После того, как переменная была инициализирована, она остаётся в памяти до конца программы. 4 Например, можно использовать статическую переменную для записи количества раз, когда функция была вызвана. 4
- Внутри класса. 14 Такие переменные являются общими для всех экземпляров класса и хранят своё значение между вызовами методов класса. 1 Например, статические переменные класса могут содержать информацию, необходимую для создания новых объектов. 4
Преимущества использования статических переменных:
- Экономия памяти. 1 Статические переменные инициализируются только один раз и не требуют повторного выделения памяти при каждом вызове функции. 1
- Сохранение состояния. 1 Они позволяют сохранять состояние данных между вызовами функций, что может быть полезно для реализации счётчиков, кэширования и других механизмов, зависящих от сохранения состояния. 1
- Общие данные для объектов. 1 В случае использования в классах, статические переменные позволяют создать общие данные для всех экземпляров класса, что упрощает управление такими данными. 1