c++ - 为什么在没有参数的方法中使用const?

标签 c++ methods constants

在这种情况下为什么要使用“const”?

std::string List::reqClubName() const
{
    return m_Club;
}

谢谢

最佳答案

禁止修改成员并不是将成员函数限定为 const 的唯一原因。无论是否要修改成员,如果成员函数标记为 const,则可以通过 const 上下文调用对象上的成员函数>:

#include <iostream>
#include <string>

struct List
{
   std::string reqClubName()
   {
      return m_Club;
   }

private:
   std::string m_Club;
};

int main()
{
   const List l;
   std::cout << l.reqClubName();
   // ^ illegal: `l` is `const` but, `List::reqClubName` is not
}

语言和编译器都不关心 reqClubName 不会尝试修改对象;你的程序将无法编译。

因此,const 后缀应该是您的默认方法,除非您确实需要修改数据成员。

关于c++ - 为什么在没有参数的方法中使用const?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22889661/

相关文章:

c++ - C/C++ 中大数的所有因数

c++ - 如何在 C++ 中比较二维数组的行和列?

objective-c - 无返回类型的方法 : -()foo

swift - 在 Swift 类之外声明私有(private)常量

c++ - 函数参数使用 'const'

C++ 字符串文字与 const 字符串

c++ - std::enable_if 特化失败

c++ - 找不到“jpeglib.h”文件

python - django 简单历史 - 使用模型方法?

java - 如何从同一个类中的另一个方法调用一个方法(java)