C/C++中关于静态static的问题

静态变量:
在程序编译时赋初值,且只赋初值一次,在程运行时它已有初值,且之后每次调用声明静态变量的代码块时就不再重新赋初值,而是保留上次代码块执行结束时的值。

静态全局变量:
静态全局变量仅限在定义改变量的源文件内有效,对同一源程序的其他源文件不可使用。

静态函数:
也可以叫内部函数。函数的作用域只限于本文件,能被本文件的函数调用,且其他文件中可出现同名的函数。

类的静态数据成员:
1、类的各对象所共有,而不属于某个对象的成员,属于类;
2、静态数据成员的内存只存在一份,每个对象都可以引用此静态成员数据。
3、静态数据成员的值对所有对象都是一样的,若改变其值,则各对象中这个数据成员的值都同时改变。
4、只声明类而未定义对象时,或者说是早程序编译时,静态数据成员的内存已经被分配了,可以被引用,如类A的public静态数据成员static int b,在类外可以用A::b来引用。
5、静态数据成员需要在类外声明、初始化,不然会在引用时报错。例如:int A::b=10;但是如果一个成员变量同时是static和const的,那是可以也只能在声明的时候就赋初值。

类的静态成员函数:
1、和静态数据成员一样,属于类。
2、和静态数据成员一样,也可以用A::static_fun()来引用。
3、静态函数成员的作用是用来处理静态数据成员的。
4、静态函数成员对于同属于类的静态数据成员可以直接引用,但是不能进行默认访问非静态成员。除非先定义了对象,并用对象名和成员运算符"."。
5、静态成员函数不能被声明为虚函数。

你可能感兴趣的:(C++,C语言)