c++ - 如何使用“顺时针/螺旋规则”读取 const 类成员函数?
问题描述
如何使用“顺时针/螺旋规则”来读取 const 类成员函数?喜欢:
class Box {
// ...
double volume() const; // <= How to read this function?
}
解决方案
这不是这里的螺旋规则,因为这不是一个单一的类型定义,而是一个函数:
double volume() const;
^ ^ ^---- Operates on const instance of Box
| \--- Function name
\-- Return type
任何带有尾随const
的东西都可以在 上运行const Box
,如果没有的话,你需要一个可变版本,否则你不能使用它。你会得到某种编译器错误,说它找不到 a 的函数,const Box
即使你认为这样的函数已定义。
通常你会看到类似的东西:
const myType& getType() const;
从实例返回const
值的位置。const
这些通常最终成对出现,例如:
const myType& getType() const;
myType& getType();
第一个用于只读访问,第二个允许更改。