const修饰:
1.修饰指针
int a;
const int* p = &a;
p++;//right
int* const cp = &a;
cp++;//error
2.修饰成员变量
3.修饰成员函数
const修饰的成员函数内无法修改任何成员变量的值,const实际是加在了this指针上。
class A {
const int a;
int b;
public:
A() :a(0),b(0) {};
A(int aNum,int bNum) :a(aNum),b(bNum) {};
~A() {};
void print()const { cout << a << endl; };
void add() { b++; };
};
4.修饰对象
const对象只能使用const的成员函数
const A cb;//cb只能调add(),无法调print()
注:const修饰全局变量和局部变量不改变变量原本作用域。全局变量依然存放在全局数据区,局部变量存放于栈上