static即静态的之意。
在c语言中,我们可以用static将一个全局变量固定在某文件使用,也可以在一个局部函数定义static变量,比如统计该函数被调用的次数。
在c++语言中,在包含前者的情况下,在类里面pulic变量使用static关键字,表示该变量在实例化(即对象创建)之前就已经占有空间,在pulic函数前面使用static,则表示该函数可以在外部使用类名加函数名称访问。
示例:
#include<iostream>
using namespace std ;
class Test{
public:
Test()
{
total++;
}
static int total ;
static void print()
{
cout<<"print"<<endl ;
}
void bar()
{
cout<<"visit "<<total <<endl ;
}
};
int Test::total = 3 ;//静态成员初始化
void foo()
{
static int num = 0 ;
num++ ;
cout<<num<<endl ;
}
int main(int argc, char* argv[])
{
Test a , b , c ;
cout<<Test::total ; //外部访问total
Test::print(); //外部访问print
foo(); //调用3次
foo();
foo();
a.bar(); //成员函数内部访问
return 0;
}