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

时间:2014-04-06 03:30:11

标签: c++ methods const

为什么" const"的目的是什么?在那种情况下?

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

由于

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:1)

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