Const
class A
{
private:
const int a;
public:
A():a(0){};
A(int x):a(x) {};
int getValue();
int getValue() const;
};
void function1(const int val);//参数不可变
void function2(const int* val);//传入的是常量,不可变,不能在函数中更改val
void function3(char* const var);//常指针,不可变,即无法通过指针迭代var
void function4(const int& var); //引用的是常量
const int function5();//返回一个常量
const int* function6();//返回一个指向常量的指针
int* const function7();//返回一个指向变量的常指针
int main()
{
A b;
const A a;
const A *p = &a;//不能通过p更改a
char greeting[]="Hello";
char *p1 = greeting;
const char *p2 = greeting;//不能通过p2更改数组
char* const p3 = greeting;//不能更改指针p3
const char* const p4 = greeting;//不能更改指针p4,也不能通过p4更改greeting
return 0;
}