<分区>
我有一个变量只在一个函数中使用。该变量应在函数调用之间保持其值,因此它应该是静态变量。有两种实现方式。一种是声明为成员变量:
class A{
private:
void foo();
int i;
}
// i is initialized to 0 in constructor
void A::foo()
{
i++;
if (i > 5)
i = 0;
}
另一种是在函数内部声明一个静态变量:
void A::foo()
{
static int i;
i++;
if (i > 5)
i = 0;
}
我想知道哪个更适合使用。不涉及赛车条件。