我正在阅读 Essential C++。在 4.3 节中,作者举了一个例子来解释const的用法
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();
}
在上述代码段中,作者基于 constness 重载了函数 val。然后pbc->val()
将调用 const 实例,rbc.val()
将调用非 const 实例。
pbc是BigClass类型的const 指针。我们如何保证BigClass有一个成员函数val?示例函数中的BigClass是否应该替换为val_class?