未解析的外部静态变量

时间:2013-10-19 23:56:46

标签: c++ visual-studio-2012 static include double

我有一个名为Pub的类,它有以下标题:

#pragma once



class Pub
{

public:
    static double X_FACTOR;
    static double Y_FACTOR;
    static const int INIT_SCREEN_WIDTH=500;
    static const int INIT_SCREEN_HEIGHT=550;


    Pub(void);
    ~Pub(void);
};

我正在尝试使用以下内容在main.cpp中设置变量Y_FACTOR:

Pub::Y_FACTOR=1.0;

并且是正确包含的Pub.h,可以演示,因为我可以访问INIT_SCREEN_WIDTH和INIT_SCREEN_HEIGHT 但是,当我这样做时,我收到以下错误:

  

错误6错误LNK2001:未解析的外部符号“public:static   double Pub :: Y_FACTOR“   (?Y_FACTOR @ Pub @@ 2NA)C:\ Users \ Pedro-Estevan-Juarez \ Documents \ Visual Studio   2012 \ Projects \ Project2 \ Project2 \ main.obj Project2错误7错误   LNK1120:1个未解析的外部C:\ Users \ Pedro-Estevan-Juarez \ Documents \ Visual   Studio 2012 \ Projects \ Project2 \ Debug \ Project2.exe 1 1 Project2

我怀疑这是语法上的明智,有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

类定义中的代码只是一个声明。您需要在cpp文件中添加静态变量的定义。 在任何使用它的函数之前,在cpp文件和文件范围中添加它。

double Pub::Y_FACTOR;