C++为什么声明成员函数为const

Joj*_*ino -1 c++ member-functions

我知道指定成员函数“const”允许我们从 const 对象调用它,但为什么我们必须在成员函数旁边显式写“const”?为什么编译器不能弄清楚

int getFoo() {
  return m_foo;
}
Run Code Online (Sandbox Code Playgroud)

确实是“const”吗?

Cal*_*eth 7

因为 C++ 允许声明与定义位于不同的位置。

如果你拥有的只是

class Bar {
    int m_foo;
public:
    int getFoo();
};
Run Code Online (Sandbox Code Playgroud)

你能安全地打电话getFooconst Bar