static关键字的意义

 
static 关键字在 C C++ 中都有,但是其意义在两者之间有比较大的区别。
C 语言中:
如果一个变量被声明为static,并且和函数声明是同一级别,则说明这个变量的可见范围是文件作用域,另外也说明了这个变量的生存期是自程序运行开始到程序运行结束。如果是在函数内部则其具有函数作用域。但是生存期仍然是自程序开始运行到程序运行结束。
如果一个函数被声明为static, 则说明这个函数具有文件作用域。类似于文件的私有函数。
C++ 语言中:
如果一个类成员函数声明为static, 那么它只能访问类的static成员变量。也就是说为外界提供了一个访问static变量的借口。
如果一个类成员变量被声明为static, 那么所有的该类以及该类派生类的示例都共享该成员变量。是实现单子模式的重要方法。另外一个static成员变量可以被修饰成volatile型。
关于对类static成员变量访问权限的测试:
(1)       如果该static成员变量没有被初始化,那么只有static成员函数和类的非虚成员函数可以访问。
(2)       如果该static成员变量被初始化,那么类的虚成员函数也可以访问。
 

你可能感兴趣的:(static关键字的意义)