захочу обнулить переменную id, то как быть? И почему каждый раз при вызове не присваивается 0? Понимаю, что это из-за static, но как это работает?
#include <iostream>
int getId()
{
static int id = 0;
return id++;
}
int main()
{
for (int i = 0; i < 100; i++)
{
std::cout << getId() << std::endl;
}
return 0;
}
В функциях статики один раз интциализируются
статик переменные инициализируются только один раз за всю работу программы. Потом инициализаторы просто игнорируются
обычно статик переменные не хотят обнулить)
Эта переменная доступна только в этой функции. Если тебе нужно обнуление, то, очевидно, такой переменной пользоваться нельзя, нужна другая переменная.
Обсуждают сегодня