常量成员函数:
先看这个例子
bool Sales_item::same_isbn(const Sales_item &rhs) const
{ return (isbn rhs.isbn);}
蓝色的const用于修饰显示传入的形参rhs,而对于类的成员则有隐式的,而外的this指针作为形参传入,而红色部分的const正是修饰这部分参数this;
const 成员函数的引入
现在,可以理解跟在Sales_item 成员函数声明的形参表后面的const 所起的作用了: const改变了隐含的this 形参的类型。在调用total.same_isbn(trans) 时,隐含的this 形参将是一个指向total 对象的const Sales_item*类型的指针。就像如下编写same_isbn 的函数体一样:
用这种方式使用const 的函数称为常量成员函数(const member function) 。由于this 是指向const 对象的指针,const 成员函数不能修改调用该函数的对象。因此,函数avg-price
和函数sarne isbn 只能读取而不能修改调用它们的对象的数据成员。
NOTE:
const对象指向const的指针或引用只能用于调用其const成员函数如果尝试用它们来调用非const 成员函数,则是错误的。
返回常量引用:
以上mycls是我自己定义的一个类,声明如下
posted on 2008-12-04 17:08 pear_li 阅读(3392) 评论(4) 编辑 收藏 引用 所属分类: C++