我想问一个简单的问题
例如在我的私有成员中,我已经声明了静态成员。
static int id;
并且在公众场合,我已经为此id使用了getter函数
static int getID() const;
compilor给了我一个错误,但是当我不使用const时它没有给出任何错误,因为这只是getter它应该是常数,请告诉我原因。
答案 0 :(得分:1)
这是一个static
函数,它不能是const
,因为它不会对任何特定的类实例起作用。这意味着此类函数没有this
指针(隐式地作为隐藏参数传递)到任何特定实例。你应该写
static int id;
static int getID();
也可以将此功能设为非static
int getID() const;
但是这样的函数通常应该是静态的,只要它不需要访问特定对象的表示。