static以及const作用

很多人对于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、修饰函数参数、返回值

原文地址:https://www.cnblogs.com/hui277/p/3503484.html