静态函数常量静态成员函数

时间:2014-03-02 18:20:55

标签: c++ static const

我想问一个简单的问题

例如在我的私有成员中,我已经声明了静态成员。

static int id;

并且在公众场合,我已经为此id使用了getter函数

static int getID() const;

compilor给了我一个错误,但是当我不使用const时它没有给出任何错误,因为这只是getter它应该是常数,请告诉我原因。

1 个答案:

答案 0 :(得分:1)

这是一个static函数,它不能是const,因为它不会对任何特定的类实例起作用。这意味着此类函数没有this指针(隐式地作为隐藏参数传递)到任何特定实例。你应该写

static int id;
static int getID();

也可以将此功能设为非static

int getID() const;

但是这样的函数通常应该是静态的,只要它不需要访问特定对象的表示。