使用静态变量未解析的外部

unresolved external with static variables

本文关键字:外部 静态 变量      更新时间:2023-10-16

>我有一个名为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:未解析的外部符号"公共:静态 双人酒吧::Y_FACTOR" (?Y_FACTOR@Pub@@2NA) C:\Users\Pedro-Estevan-Juarez\Documents\Visual Studio 2012\项目\项目2\项目2\main.obj 项目2 错误 7 错误 LNK1120:1 个未解析的外部 C:\Users\Pedro-Estevan-Juarez\Documents\Visual Studio 2012\Projects\Project2\Debug\Project2.exe 1 Project 2

怀疑这是语法明智的,有人可以帮我吗?

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

double Pub::Y_FACTOR;