Sobes.tech
Back to questions
Junior — Middle
83

Какова роль и применение ключевого слова static в программировании?

Companies where asked
А-стор

Answer from AI

sobes.tech AI

В C/C++ ключевое слово static имеет несколько применений, связанных с областью видимости и временем жизни переменных и функций:

  1. Внутри функции:
    • Переменная, объявленная как static, сохраняет своё значение между вызовами функции.
    • Она инициализируется только один раз.
void func() {
    static int count = 0;
    count++;
    std::cout << count << std::endl;
}
// Каждый вызов func() увеличивает count, и значение сохраняется между вызовами.
  1. Внутри файла (глобальная область):
    • static ограничивает область видимости функции или переменной текущим файлом (translation unit).
    • Это предотвращает конфликт имён при линковке.
static void helper() {
    // Эта функция видна только в этом файле
}
  1. В классе (C++):
    • static член класса принадлежит самому классу, а не конкретному объекту.
    • Общий для всех экземпляров.
class MyClass {
public:
    static int count;
};
int MyClass::count = 0;

Таким образом, static управляет временем жизни, областью видимости и принадлежностью переменных и функций.