为什么在没有参数的方法中使用const?
这个问题在这里已经有了答案:
禁止修改成员不是将成员函数限定为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
表示该函数不会修改它所属的类中的成员数据。