what(是什么):const是一个修饰符,被其修饰的东西只具有“读”的特别,在编译的过程中,一旦我们的代码试图去改变这些东西,编译器就应该给出错误提示。
who(谁用它):编译器
when(什么时候用):编译时期
why(为什么用):const修饰符的作用主要是利用编译器帮助我们检查自己代码的正确性。我们使用const在源码中标示出“不应该改变”的地方,然后利用编译器,帮助我们检查这些地方是否真的没有被改变过。如果我们不小心去修改了这些地方,编译器就会报错,从而帮助我们纠正错误。使用const和不使用const,对于最终编译产生的代码并没有影响。
how(怎样使用它):
struct dataStruct
{
int data1;
int data2
}
Class A{
private:
//1.0修饰变量 注意:由于const修饰的变量不允许被修改,因此必须被初始化,否则编译会报错
const int dataA = 10; //dataA将不允许被修改,且必须被初始化
//2.0修饰指针
const int *DataB; //修饰对象:指针指向的内存,内容是不能改变的
int * const dataC; //修饰对象:指针, 指针也是一种变量,存的内容是地址。const指针的指向不能变,但是指向的内容可以变
//3.0修飾类对象 注意:1:不能修改classB中的任何变量 2:不能调用classB中非const成员函数
const classB;
//2.0在函数中的使用
const funtA(const int dataB)const;
//解析:在2.0中有三个地方使用到了const修饰符:他们代表的含义:
1:用在函数前:函数返回的变量是不允许被修改
2:用在函数里:修饰的参数部分,只能读,不能改
3:用在函数后:函数实现时,不允许对成员变量进行修改
}