C++如何为类中的静态变量赋值?

Gar*_*Gal 0 c++ static managed-c++ visual-c++

在VC++ CLR项目中我有一个类temp,我试图将静态变量temp1设置为5.我得到一个编译错误:

错误32错误LNK2020:未解析的令牌(0A0005FB)"public:static int temp :: temp1"(?temp1 @ temp @@ 2HA)C:\ Users\user100\Documents\Visual Studio 2012\NewProject 32 bit\create min bars from data2 \从数据创建最小条形\从data5.obj创建最小条形

错误33错误LNK2001:未解析的外部符号"public:static int temp :: temp1"(?temp1 @ temp @@ 2HA)C:\ Users\user100\Documents\Visual Studio 2012\NewProject 32位\从data2创建最小栏\从数据创建最小条形\从data5.obj创建最小条形

我该如何解决?

class temp
    {
        public:
        static int temp1;
    };

int main(array<System::String ^> ^args)
{

temp::temp1=5;
}
Run Code Online (Sandbox Code Playgroud)

Mic*_*gan 6

在类中声明静态变量时,实际上不会创建任何内存.你需要一个单独的变量callout来实际为它创建RAM.这就是编译器告诉你的.

//Outside your class declaration:
int temp::temp1;
Run Code Online (Sandbox Code Playgroud)


Huy*_*Huy 5

编辑

定义静态成员变量

class temp
{
    public:
        static int temp1;
};

int temp::temp1 = 0;

// Fixed main() ;)
int main(int argc, char** argv)
{

        temp::temp1=5;
        return 0;
}
Run Code Online (Sandbox Code Playgroud)