const用在成员函数后 主要是针对类的const 对象
如:class Text{
public:
void printconst(void)const{cout<<"hello"<<endl;}
void print(void){cout<<"hello"<<endl;}
private:
int k;
};
const Text a;
//上面定义了类Text的一常量对象
int main(void)
{
a.printconst(); //ok
a.print(); //error
//上面a.print()调用是非法的
return 0;
}
1)const对象只能调用const成员函数。
2)const对象的值不能被修改,在const成员函数中修改const对象数据成员的值是语法错误
3)在const函数中调用非const成员函数是语法错误
const用在成员函数前 主要是针对函数的返回值
表示是一个常量函数,返回的是一个常量的值。
如果函数返回值采用“值传递方式”,由于函数会把返回值复制到外部临时的存储单元中,加const 修饰没有任何价值。
如果给以“指针传递”方式的函数返回值加const 修饰,那么函数返回值(即指针)的内容不能被修改,该返回值只能被赋给加const 修饰的同类型指针。