假设我们现在要比较两个对象之间某个值的大小,从效率上考虑,可以按照引用来传递参数,于是我们就可以和之前的const联系在一起
const stock & top(const stock &s)const ;
注:第一个const表示返回类型为const的引用,括号里的const表示显示访问对象s时,不能修改对象s中的内容,最后一个const表示隐式访问top对象是,不得修改top对象中的内容,
所以C++中解决该问题的方法是使用this指针,this指针指向调用成员函数的对象,调用相应成员函数时,将this设置为对象的地址,一般来说,所有类方法都将this指针设置为调用它的对象的地址
每个成员函数(包括构造函数和析构函数)都有一个this指针,this指针指向调用对象,如果方法需要调用整个对象,使用表达式*this,括号后的const限定符将this限定为const,这样不能使用this来修改对象的值
返回类型为引用意味着返回的是调用对象本身
如:
const stock & stock::topval(const stock &s) const
{
if(s.total > total)
return s;
else
return *this;//此处返回的是调用对象本身
}