C++ ——const关键字
const关键字通常表示只读,不可修改,可以保证数据的安全性
1、修饰局部变量
const修饰的局部变量,叫做常局部变量,表示该局部变量不可被修改,这种用法常用于引用参数
2、修饰成员变量
const修饰的成员变量,叫常成员变量,表示该成员变量的值无法被修改
特点:
(1)该成员变量不可修改
(2)两种初始化方式:直接初始化、构造初始化列表(不能通过构造函数),推荐使用构造初始化列表
#include <iostream>using namespace std;class Test{private:int num1; //普通成员变量const int num2; //常成员变量public://构造初始化列表
Test(int num1,int num2):num1(num1),num2(num2){}void fun(){cout<<this->num2<<endl;// this->num2=90; //报错,常成员变量不可修改}};int main(){Test t1(1,2);Test t2(5,6);t1.fun();t2.fun();return 0;}
3、修饰成员函数
const修饰的成员函数,叫常成员函数
特点:
(1)可以访问任何成员变量,但是不可以修改成员变量的值
(2)只能调用常成员函数,不能调用非const修饰的成员函数
(3)如果成员函数不需要修改成员变量的值,推荐使用const修饰,例如属性的读接口,体现的是安全性
#include <iostream>using namespace std;class Test{private:int num1; //普通成员变量const int num2; //常成员变量public://构造初始化列表Test(int num1,int num2):num1(num1),num2(num2){}//常成员函数
void fn1()const{
cout<<"普通成员变量:"<<this->num1<<endl;cout<<"常成员变量:"<<this->num2<<endl;// this->num1; //报错,因为常成员函数不能修改任何变量的值}};int main(){Test t1(1,2);Test t2(5,6);t1.fn1();return 0;}
4、修饰对象
const修饰的对象,叫做常对象
格式:const 类名 对象名 或者 类名 const 对象名
特点:常对象不能修改属性值,只能调用常成员函数