常量成員函數:
先看這個例子
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 閱讀(3421) 評論(4) 編輯 收藏 引用 所屬分類: C++