笔者学习《C++入门到高级开发精解》,总结常见的const的使用如下
视频链接:https://www.bilibili.com/video/av12595345/
1. const 关键作用总结
(1)const定义常量:const float pi=3.14;其值不能被改变
(2)const与指针 常量指针和指针常量
(3)const与函数 const int func(const int &a)const;
a.修饰形参时,形参不能被修改
b.修饰成员函数时,函数体内不能修改成员变量的值
(4)const对象 const Point p; 常量对象
const对象只能调用const成员函数,不能调用普通成员函数
普通对象既可以调用const成员函数也可以调用普通成员函数
2. const 的作用细节
2.1 const定义常量
定义const常量,常量意味着初始化后,其值不能再被修改
2.2 const与指针
常量指针:不能通过指针修改指针所指向的变量的值,但指针可以指向别的变量。
指针指向的值不能变,指针能变
int a=5;int b=10;
cinst int *p=&a;
*p=20; //错误,不能通过指针修改指针所指向的变量的值
p=&b; //正确,指针可以指向别的变量
指针常量(指向常量的指针):指针常量的值不能被修改,即不能存一个新的地址,不能指向别的变量,但可以通过指针修改它所指向的变量的值。
指针不能变,指针指向的值能变
int a=5; int b=10;
int *const p=&a;
*p=20; //可以通过指针修改指针所指向的变量的值
p=&b; //指针不能指向别的变量
2.3 const与函数
const在函数中根据修饰位置分三种,
const int func(const int a)const;
- 修饰返回值:const int func(); 返回值不能被改变
- 修饰函数形参,int func (const int a); 函数体内不能修改形参a的值
- 修饰成员函数,int func()const; 函数体内不能修改成员变量的值
2.4 const对象
const对象 (如const Point p 常量对象)
- const对象只能调用const成员函数,不能调用普通成员函数
- 普通对象既可以调用const成员函数也可以调用普通成员函数