const修饰指针
:常量指针
特点:指针指向可以修改,指针指向的内容不可以修改;
//如下
int a=10;
int b=10;
const int *ptr=&a;//正确
ptr=&b;//正确,可以修改指针指向b;
*ptr=20;//错误,指针指向的内容不可以修改。
const修饰常量
指针常量
特点:指针指向不可以改变,指针指向可以改变。
int a=10;
int b=10;
int * const p=&a;
*p=20;//正确,指针指向的内容可以修改
p=&b;//错误;指针指向不可以改变
const修饰常量指针
指针指针指向和指针指向的内容都不允许修改
int a=10;
int b=10;
const int * const ptr=&a;
*p=20;//错误
p=&b;//错误
const修饰成员函数
常函数:
1.成元函数后面加const.
2.常函数不可以修改成员属性
3.成员属性申明时候 前面加入 mutable ,则常函数可以修改该属性值
常对象:
1.类对象前面加 const 即称为常对象
2.长对象只能调用常函数。
class Person
{
public:
int m_A=100;
mutable m_C=400;
//const 本质修饰 this指针
void show_person() const
{
m_A=200;//加const 后出错
m_C=100;//正确
//原因是 this指针是一个指针常量,所以this指针指向不可以修改。
}
}
const Person p;//常对象,长对象只能访问常函数。