#pragma once
class B
{
private:
static int s_nValue;
public:
B();
~B();
static int GetValue() { return s_nValue; }
static void SetValue(int value){ s_nValue = value; }
};
int _tmain(int argc, _TCHAR* argv[])
{
int i = 0;
B::SetValue(5);
std::cout << B::GetValue();
cin>> i;
return 0;
}
我试图掌握静态功能的使用。在这种情况下,SetValue()和GetValue()在类B中定义。在main中调用它们时没有对象定义。这应该可行,但我得到了一个未解决的外部符号错误2001.预编译头文件选项已关闭。
如何摆脱这个错误?
使用MS Visual Studio 2012
答案 0 :(得分:1)
您的静态变量只是声明但未定义,您应该在cpp文件中执行此操作:
int B::s_nValue = 0;