2011-09-07 59 views
5

返回static成員變量的成員函數是否也應該是static返回靜態變量的成員函數

例如:

struct T { 
    static int i; 
    static int getNumber() { 
     return i; 
    } 
}; 

應該getNumberstatic與否?

回答

7

通常,是的。

如果該變量沒有任何每個實例的狀態,那麼函數在返回之前可能執行的每個實例的邏輯是什麼?

+0

@Ben,當我發表評論的時候,我正在考慮其他的東西(例如,記錄實例計數的hokey方式)......反正 - 刪除了狡猾的評論... – Nim

+0

@Nim:我想知道是否有人可能會提出這樣的事情。你不會生氣的。但是,你很可能不想在一個簡單的吸氣器中做到這一點。 –

1

這不是強制性的。你可以編寫一個返回靜態變量的成員函數。你不能相反(編寫一個返回實例變量的靜態函數)。

作爲一個例子,你可能想要返回一個靜態成員,想象一下這個類持有一個狀態變量的情況,並且基於你將返回一個靜態值的狀態。不是說這是好的設計,但它不是完全不可思議的