const关键字的作用?
const
主要用来定义常量和保护变量不被修改:
-
定义常量 :使用
const
可以定义一个不可修改的常量,const
常量的默认链接方式是内部链接(只有该源文件可见) ,可以将其定义在头文件中而不会引起重复定义问题,每个包含该头文件的源文件都各自拥有一个const
常量的副本。cpp// constants.h const int MAX_VALUE = 100;
-
修饰变量/成员变量 :用
const
修饰一个变量,阻止这个变量被改变,在定义变量时必须初始化。cpp// 变量 const int value; // 成员变量 class MyClass { public: MyClass(int v) : value(v) {} void printValue() const { std::cout << value << std::endl; } private: const int value; };
-
修饰函数参数 :用
const
修饰一个函数的参数,表示在函数内部不能修改这个参数,一般搭配引用或指针使用。cppvoid printValue(const int value) { // value不能在函数内部被修改 printf("%d\n", value); }
-
修饰指针变量 :
const
也可以修饰指针变量,分为:常量指针和指针常量。cppconst int* value; // 常量指针,value可以改变指向,,但不能改变所指向地址的变量值,底层const int* const value; // 指针常量,可以改变指向地址的变量值,但不能改变指向,顶层const
-
修饰返回值:表示返回的值不能修改,通常用于返回引用类型。
cppclass MyClass { public: const int& getValue() const { return value; } private: int value; };
-
修饰类成员函数 :表示该成员函数不能修改类的成员变量,显式用
mutable
修饰的除外。