2014-04-09 35 views
0

如果我定義在CLASSA一個靜態變量:到達在C++中的靜態變量

static int m_val; 

和初始化等

int classA::m_val = 0; 

可否使用直接m_val,因爲它是爲了訪問它在ClassA的(或任何其他類),或者我應該像classA :: m_val一樣使用它。

+1

CLASSA :: m_val無處不在,除了CLASSA – jsantander

+0

內內CLASSA寫m_val就足夠了。 – honk

回答

4

裏面的ClassA,只寫m_valClassA之外,ClassA::m_val

但是,m_val在您的示例中不是const,因此無論如何它(通常)應該是私有。在這種情況下,你不能直接從其他類訪問,但提供了一個成員函數來獲取副本:

class ClassA 
{ 
private: 
    static int m_val; 
// ... 
public: 
    static int GetVal(); 
}; 

實現:

int ClassA::m_val = 0; 

int ClassA::GetVal() 
{ 
    return m_val; 
}