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

这个问题在这里已经有了答案:

  • C ++方法声明中最后一个“const”的含义? 7个答案
  • 函数声明结束时的“const”是什么意思? [复制] 6个回答

  • 禁止修改成员不是将成员函数限定为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后缀应该是您的默认方法。


    成员函数后的const表示该函数不会修改它所属的类中的成员数据。

    链接地址: http://www.djcxy.com/p/40435.html

    上一篇: Why the use of const in a method with no parameters?

    下一篇: Const declaration of a function