const、static关键字
3 月,跳不动了?>>> 最近一直在迷惑着这两个关键字,感觉大脑里一片糊涂,特此整理一下: 一、const 1、数据常量,不能修改,必须初始化; 1)非类的数据成员 a、指向const对象的指针(remember) b、const指针(remember) 2)作为类的数据成员 a、必须在构造函数中进行初始化,并且必须在初始化列表中进行初始化; 引申:必须对任何const或引用类型成员以及没有默认构造函数的类类型的额任何成员使用初始化式; 2、const成员函数 作为类的const成员函数,const关键字放在函数声明的后面,在函数定义时,也必须将const关键字放在函数的后面(对于static不是这样)。 1)设计const成员函数主要是不改变对象,正因为这样一个const成员函数不可能再声明为static,因为static加在成员函数上就表明该函数属于类而不属于类对象; 2)const成员函数可以被const对象或者非const对象调用,当被const对象调用时,函数中的this指针就变成了一个指向const对象的const指针(因为this指针本书就是一个const指针,它就是指向调用该函数的对象); 二、static 静态的; 1、对于对象进行修饰 1)对于全局变量加上static关键字后其存储位置没有变,还是在全局存储区,但是缩小了其作用域,生命周期也没有变; 2