const 分为三种介绍
-
普通const对象(变量) 一旦创建就不能再改变,所以const的对象必须要初始化,必须赋值,不然没有意义(难道不可更改一个没有的东西)
这里插播一个define,虽然# define a 30;也是让a不可更改,但是他是替代,出现几次替代几次。产生多个副本,const只有一个副本,define不能定义数据类型 -
对于类里面的const我们分为四种
- const成员变量(只读),和普通的const变量一样,定义的时候在前面加上const关键字就可以,初始化const成员变量只有一个方法,就是参数初始化表(构造函数初始化),所以不同的对象const的数值不一样。这和static的类外初始化非常不同,const static 和static const都是类外初始化
- const成员函数为了保护数据设置,可以使用类中的所有成员变量,但是不能修改变量,语法就是在声明和定义的时候在函数头部的结尾加上const关键字,const成员函数不能调用类中非const的成员函数
double getprice() const;
- const对象,常对象只能调用类中的常成员函数(const的对象只能调用const的函数),常对象就是不能对当前对象的成员进行修改,进行左值操作
const 类名 对象名(实参名); const