const 变量
const int a;
不能修改值,必须初始化
const 类对象
const MyClass a;
不能修改成员变量的值,不能调用非const函数
指向 const 变量的指针
const int* a;
指向内容不可变,指向可变
const 指针
int * const a;
指向内容可变,指向不可变
指向 const 变量的 const 指针
const int * const a;
指向内容和指向都不可变
const 引用(可以引用右值,如:const int& a=1;)
const 变量作为函数参数
void myfun(const int a);
函数内部不能改变此参数
指向const变量的指针做参数,允许上层用一般指针调用。(反之不可)
const 返回值
const string& myfun(void);
用于返回const引用
上层不能使用返回值的引用来修改对象
const 成员变量
const int a;
static const int a;
必须在初始化列表初始化,之后不能改变
static const 成员变量需要单独定义和初始化
const 成员函数
void myfun(void) const;
this指针为指向const对象的const指针
不能修改非mytable成员变量
可以被const和非const对象调用,而const对象只能调用const函数