我有一个名为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
我怀疑这是语法上的明智,有人可以帮我解决这个问题吗?
答案 0 :(得分:2)
类定义中的代码只是一个声明。您需要在cpp文件中添加静态变量的定义。 在任何使用它的函数之前,在cpp文件和文件范围中添加它。
double Pub::Y_FACTOR;