很多人对于static及const的作用总是了解不全,包括我自己,现记录下来供大家完善
static
1、在函数内static变量只初始化一次,多次调用该函数变量会继承上一次的值
2、在模块内,静态变量可以被模块内函数访问,不能被模块外的其它函数访问
3、在模块内,静态函数可以被模块内的函数调用,不能被模块外的其它函数调用
4、类中的static成员变量为类所有实例所共享
5、类中的static成员函数为整个类所拥有,没有this指针,只能访问static成员变量
另外需要注意的是静态变量和函数都应该定义在cpp文件中,
如果定义在头文件,实际上相当于包含该头文件的文件都定义了一份,而不是同一份变量!
const
1、代表常量定义
2、修饰变量表明变量不可修改
3、修饰指针指向的内容,表明指针指向的内容不可修改(如const int* i=&n)
4、修饰指针,表明指针不可修改(如int* const i=&n)
5、修饰类成员函数,表明是常函数,不能修改类的成员变量
6、修饰函数参数、返回值