一.const ——对于变量
const作用:
在C中是只读,在C++中是常量
1.const可以定义常量
const int a = 10;必须在声明的时候初始化
2.const可以定义指针
定义指针本身或 指针所指向的内容
例如:
int a = 10;
/*这个const修饰的是p1,p2所指向的内容,不可以修改值的大小*/
const int* p1 = &a;//p1本身是指针变量,所指向的内容不能修改
int const* p2 = &a;//同上
/*这个const修饰的是p3本身,可以修改值的大小*/
int* const p3 = &a; //const修饰p3本身
/*这个const即修饰p4本身,也修饰p4所指向的内容*/
const int* const p4 = &a;//p4本身和所指向内容都不能修改
3.const可以修改函数形参–提高程序的可读性和健壮性
int strcmp(const charstr1,const charstr2)
char *strcpy(char dest,const charsrc)
4.const可以修饰成员函数–放在函数参数外面—常成员函数–在此函数中不能修改本类数据成员的值
一般情况下,将get函数,打印函数等这类函数设置为const
int get()const{}
mutable
—注意:const成员函数和非const成员函数可以构成重载
5.const可以修饰函数返回值—返回值为引用才有意义
在函数前加const代表这个函数的返回值必须是常量,例如:
const int&GetI();
二.const——对于函数
在函数括号后面加入const,
例如:
int GetJ()const //常成员函数
{
return m_j;
}
叫常成员函数。
常成员函数特点:
在当前函数中不能修改本类数据成员的值,
即是在当前函数中不能修改m_i和m_j(假设m_i和m_j是类里的数据成员)
例如:
int GetI()const
{
m_i = 10;//error 在此函数中不能修改
return m_i;
}