C ++语言中const为什么有时候放在定义语句的前面,有时候放在后面,有啥区别?

来源:百度知道 编辑:UC知道 时间:2024/05/12 06:23:44

你说的定义语句是指的类成员函数吧。
1. type funtion(type2 v)const;
等价于:type function(const *this, type2 v)const;
类的成员函数有隐含的this指针,所以上面的函数其实是有两个形参的,第一个就是this指针,函数后面的const 就是限定this指针为const,从而不允许函数修改调用该成员函数的类对象。
2.在函数前面有const的一般是在要求成员函数返回值为类对象的情形。
const classType& function(type2 v)const;
因为函数后面有const,从而这是一个const成员函数,而有规定const成员函数不能返回指向类对象的普通引用,因此函数的返回类型也必须是const 引用类型。

两者是一样的效果!