C++类的成员函数中,使用static变量时,该变量是放在类存储区,而不是对象存储区,所以所有该类的对象共享该静态变量。
如以下代码:
#include <stdio.h>
#include <iostream>
using namespace std;
class Cs
{
public:
void t(void)
{
static i=0;
cout<<i++<<endl;
}
};
int main(int argc, char* argv[])
{
Cs c1;
Cs c2;
Cs c3;
c1.t();
c2.t();
c3.t();
return 0;
}
最后输出的数字不是0,而是2