在静态方法中设置静态成员变量

时间:2013-12-31 10:21:21

标签: c++ static-methods static-members

我是C ++的初学者,对静态成员变量和成员函数有疑问。

我已经实现了一个类 -

class Foo
{
private:
    static int myVariable;
public:
    static void setMyVariable()
    {
        myVariable = 100;
    }

    static void resetMyVariable()
    {
        myVariable = 0;
    }
};

当我编写像这样的代码时,有以下注意事项 -

  • 我只想要一个类Foo的实例。这就是为什么我将所有成员变量和函数都设置为静态。
  • 我不希望外部代码触及myVariable

我已将此类放在头文件中并包含在我的主文件中。当我这样做时,我收到错误undefined reference to Foo::myVariable

我想知道我是否可以编写一个能满足上述要求的代码?

谢谢!

1 个答案:

答案 0 :(得分:1)

您需要在某处定义静态类变量 : 例如在主C ++文件中,

int Foo::myVariable;

请注意,从技术上讲,通过将所有内容设为静态,您可能没有Foo实例