首页 > 解决方案 > 如何使用“顺时针/螺旋规则”读取 const 类成员函数?

问题描述

如何使用“顺时针/螺旋规则”来读取 const 类成员函数?喜欢:

class Box {
    // ...
    double volume() const;  // <= How to read this function?
}

标签: c++

解决方案


这不是这里的螺旋规则,因为这不是一个单一的类型定义,而是一个函数:

 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();

第一个用于只读访问,第二个允许更改。


推荐阅读