const:常量,即赋值后不可以被改变
const修饰函数返回值:多是修饰返回值是引用的情况,避免返回值被修改
const修饰成员函数:不会修改数据成员的函数可以声明为 const 类型
static:静态xxx
1. 修饰全局变量
只能在当前文件可见。所以不同文件中可以定义同名的static全局变量
2. 修饰局部变量
使局部变量的生存周期从函数结束延长到程序结束
如果一个函数经常被调用,那么这个变量就不会频繁被创建销毁?
3. 修饰函数
同1,因为普通的函数默认是extern的
4. 修饰类成员变量
使其成为静态成员变量,该类所有对象这个数据成员都只有一个实例,的意思是说所有对象都共用这一个变量,改变的也是同一个变量的值(有点像全局变量)
静态成员变量相比较全局变量的好处:可以私有化
5. 修饰类成员方法
使其为静态成员方法,只能访问它的参数、类的静态数据成员和全局变量
和静态成员变量一样,不属于某个对象,而属于这个类,是为类服务的
(这个文章有总结,冗余但全面)
c++中static的作用_ypshowm的博客-CSDN博客_c++ static
关于在头文件中定义全局变量:
不可以,编译器不会报错但,每一个cpp使用的都是地址不一样的变量,然后会增加很多无用的内存占用