常量成員函數(shù):
先看這個例子
bool Sales_item::same_isbn(const Sales_item &rhs) const
{ return (isbn rhs.isbn);}
藍色的const用于修飾顯示傳入的形參rhs,而對于類的成員則有隱式的,而外的this指針作為形參傳入,而紅色部分的const正是修飾這部分參數(shù)this;
const 成員函數(shù)的引入
現(xiàn)在,可以理解跟在Sales_item 成員函數(shù)聲明的形參表后面的const 所起的作用了: const改變了隱含的this 形參的類型。在調(diào)用total.same_isbn(trans) 時,隱含的this 形參將是一個指向total 對象的const Sales_item*類型的指針。就像如下編寫same_isbn 的函數(shù)體一樣:
用這種方式使用const 的函數(shù)稱為常量成員函數(shù)(const member function) 。由于this 是指向const 對象的指針,const 成員函數(shù)不能修改調(diào)用該函數(shù)的對象。因此,函數(shù)avg-price
和函數(shù)sarne isbn 只能讀取而不能修改調(diào)用它們的對象的數(shù)據(jù)成員。
NOTE:
const對象指向const的指針或引用只能用于調(diào)用其const成員函數(shù)如果嘗試用它們來調(diào)用非const 成員函數(shù),則是錯誤的。
返回常量引用:
以上mycls是我自己定義的一個類,聲明如下
posted on 2008-12-04 17:08 pear_li 閱讀(3445) 評論(4) 編輯 收藏 引用 所屬分類: C++