tgoop.com/cpp_geek/308
Create:
Last Update:
Last Update:
🧠 Как static в C++ помогает бороться с неожиданностями
Сейчас покажу вам интересную особенность ключевого слова static в контексте функций — то, что часто забывают даже опытные разработчики.
Представим простую ситуацию:
void logCall() {
int counter = 0;
counter++;
std::cout << "Called " << counter << " times\n";
}
Кажется, всё хорошо… Но функция всегда выводит
Called 1 times, потому что переменная counter создаётся заново при каждом вызове.Теперь добавим
static:
void logCall() {
static int counter = 0;
counter++;
std::cout << "Called " << counter << " times\n";
}
А вот теперь магия — переменная
counter сохраняет своё значение между вызовами! Это отличный способ реализовать простой счётчик, кэш или ленивую инициализацию прямо в функции.📌 Важно:
static делает переменную локальной по области видимости, но глобальной по времени жизни.А вы где применяли
static неожиданным образом? Делитесь в комментариях! 👇➡️ @cpp_geek
BY C++ geek
Share with your friend now:
tgoop.com/cpp_geek/308
