在C ++中实现静态变量

时间:2014-04-09 16:26:51

标签: c++ static

如果我在classA中定义一个静态变量:

static int m_val;

并初始化为

int classA::m_val = 0;

我可以直接使用m_val,以便在ClassA(或任何其他类)中访问它,或者我应该像classA :: m_val一样使用它。

1 个答案:

答案 0 :(得分:4)

ClassA内,只需撰写m_val即可。在ClassA之外,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;
}