我是初学者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
想知道我是否可以编写可以满足上述要求的代码?
谢谢!
你需要在某处定义静态类变量:例如,在您的主C++文件中,
int Foo::myVariable;
请注意,从技术上讲,通过使所有内容都静态,您可能没有Foo
实例。