2014-03-02 145 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; 

但是一般這樣的功能應該是靜態的,只要它並不需要訪問特定對象的代表性。