static的作用
不考虑类,static的作用主要有三个:
1.第一个作用,隐藏
当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性,假设有文件test1.cpp,main.cpp,
test1.cpp文件为
int a=23;
void getm()
{
cout<<"wodingdong"<<endl;
}
那么在这里,test1.cpp的变量a和函数getm()在main.cpp等其他文件可以访问中能够访问,若是加上static,就会对其他的文件隐藏,所以利用这个特性,可以在不同的文件中定义相同的变量和函数名称,不必担心命名的冲突。
2,第二个作用,默认初始化为0,包括未初始化的全局静态变量与局部静态变量。
3,第三个作用,保持局部变量内容的持久
函数内的自动(局部)变量,当调用时就存在,退出时就消失,但局部变量虽然在函数内定义,但静态局部变量始终存在着,也就是说它的生存周期为整个源程序,其特点是只进行一次初始化且具有“记忆性”
类中stati的作用:
c++重用了static个关键字,并赋予它与前面不同的含义,表示一个类而不是属于此类的任何特定对象的变量和函数
静态数据成员
在类内数据成员的声明加上关键字static,该数据成员就是类内的静态数据成员
static数据成员必须在类定义体的外部定义
静态成员函数
静态成员函数和静态数据成员一样,都是类的内部实现,属于类定义的一部分,它为类服务面不是为了某一个具体的对象服务,
因为普通成员函数总是具体的属于某个类的具体对象,所以普通的成员函数一般都隐含了一个this指针, this指针指向类的对象本身
参考了《王道-程序员求职宝典》