看一个函数:
const int getval(void)
{
return 100;
}
该函数返回值里的const其实是可有可无的
再看一个函数
const int* getptr(void)
{
int *p = (int *)0xCC;
return p;
}
这个函数的返回值里的const就不是可有可无的了,它表示返回一个指针,该指针指向的内容不能被修改。
const int *p = getptr();//该行可以编译通过
int *p = getptr();//该行不能编译通过
另外,const放在类成员函数后面,与不放在类成员函数后面,可以实现该类成员函数的重载。调用的时候,通过定义一个常量或非常量的类对象,调用对象的成员函数来自动选择重载的版本。
如: