2014-03-02 109 views
0

我想问一个简单的问题静态函数常量静态成员函数

就像在我的私人成员中,我已经声明了静态成员。

static int id; 

,并在公共我用getter函数这个ID

static int getID() const; 

的compilor是给我一个错误,但是当我不使用常量它不给任何错误,因为这是唯一的吸气剂应该是不变的,请告诉我原因。

回答

1

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

static int id; 
static int getID(); 

也可以让这个功能非static

int getID() const; 

但是一般这样的功能应该是静态的,只要它并不需要访问特定对象的代表性。