У меня есть рекурсивная функция со статической переменной count. Функция рекурсивно увеличивает счетчик, и, поскольку он имеет область видимости файла, когда я вызываю foo () второй раз, счетчик по-прежнему равен 5. Есть ли метод, позволяющий сбросить счетчик до 0 до второго вызова foo ()? *
По сути, я не хочу, чтобы count имел область видимости файла, но я хочу, чтобы он сохранял свое значение через различные итерации.
Один способ, которым я могу думать об этом, - это иметь аргумент в foo () для инициализации foo (). Например, foo (int count). Но есть ли другой способ?
#include <iostream>
using namespace std;
void foo()
{
static int count = 0;
if(count<5)
{
count++;
cout<<count<<endl;
foo();
}
else
{
cout<<"count > 5"<<endl;
}
}
int main()
{
foo(); //increment count from 0 to 5
foo(); //count is already at 5
return 0;
}