我正在閱讀Essential C++。在4.3節中,作者給予 一個例子來解釋常量基於常量重載
class val_class {
public:
val_class(const BigClass &v)
: _val(v) {}
const BigClass& val() const {return _val;}
BigClass& val() {return _val;}
};
void example(const BigClass *pbc, BigClass &rbc)
{
pbc->val();
rbc.val();
}
的使用在上面的代碼段中,作者重載基於常量性功能VAL。 然後pbc->val()
將調用const實例,rbc.val()
將調用非const實例。
pbc是類型爲的常量指針BigClass。我們如何保證BigClass有一個成員函數val? BigClass應該用示例函數中的val_class替換?
等等......什麼是BigClass? – ForEveR 2012-07-22 04:09:49
我認爲你的'Const'應該是'const'。 – Mysticial 2012-07-22 04:09:59
根據給出的內容,很難說出發生了什麼事情。它是不完整的,因爲'val_class'不會繼承任何東西,並且沒有聲明名爲'_val'的字段。如果這本書沒有提供更多的內容,那麼這只是一個壞榜樣或一個錯字。如果您有'BigClass'的完整定義,請包括它。另外,大寫的C'Const'可能是'const',除非它在某個地方還有特殊的定義。 – 2012-07-22 04:11:32