const修饰小结
作者:
小小蒟蒻
,
2020-10-28 13:33:00
,
所有人可见
,
阅读 468
1、请列出所有const的用法:
a)对象:
const int n = 88;//类似于#define n 88
b)常量指针:(保护底层数据)
const int* p = &n;
int const *p = &n;
c)指针常量:(保护顶层数据)
int * const p = &n;
const SData* p = &a;
d)引用:加了const 保护底层数据,否则不保护底层数据
const int & m = n;//类似于常量指针
以上的int可以是整数,浮点数,结构体或类对象
e)常函数:在函数的尾巴上加一个const:
2、常函数:必须是成员函数,不可以全局函数(C Style Function)
(可以说,常函数重点是为了只读对象来在C++标准中增加的语法)
a)加了const的常函数,函数中隐藏的this指针是const CLASS *this;
b)从主调函数来看,可以用只读对象来调用,也可以用非只读对象来调用;
(对象包括类对象、指针和引用)
c)如果这个成员函数不是常函数,就只限于非制度对象调用,只读的对象调用不了;
d)从被调函数来看,常函数的指针是const CLASS*this;
因此,常函数的内部只能读取this指向的成员变量,不能做写入操作。