1、const在修饰变量时的规律
规则a、 const 修饰它左边的第一个类型描述符。也就是修饰声明中被此类型描述符定义的变量。
规则b、倘若const 左边没有类型修饰符,修饰它右边的第一个类型描述符
举例:
int const A; //分析:const 左边的第一个类型描述符为int ,const 修饰 int ,也就是修饰 被这个 int 限定了类型的 A 变量
int *const A // 分析:const 左边的第一个类型描述符为*(可视其为指针) ,const 修饰 指针,也就是修饰被这个指针限定了类型的 A 变量。A指针为const类型
int const *A // 分析:const 左边的第一个类型描述符为int ,const 修饰 int 类型,而这里的int 变量并未显式给出,需要通过指针A访问,也就是指针A指向的值为const类型
const int& VarAlias = var ; // 分析:const 左边没有类型描述符,所以修饰右边的第一个类型描述符 int& 。int& 用于限定 VarAlias,也就是说 VarAlias本身是 一个const 类型的引用
2、const在函数中的应用
a、用于限定返回值
例如
Const MyClass Demo_1(); // MyClass 为自定义类
建议只在返回自定义类型时使用const,倘若在返回内置类型时使用,并无多大价值,只会引起困惑
b、用于限定入口参数
例如
void Demo_2 (const int Var); 表明入口参数 var 在函数内不会被修改。
建议将const对外部调用者屏蔽,改写为
void Func( int Var)
{
const int &VarAlias=Var;
……………………
……………………
}
可避免调用者的困惑
c、限定类的函数
Class ClassName
{
Public:
Int Demo_3() const;
};
此函数无法修改类内成员的值,倘若试图修改,编译器会报错。
--------------------- The End --------------------------