I가 다음 헤더가있는 클래스라는 펍 :정적 변수와 외부 해결되지 않은
#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 에 액세스 할 수 있지만 다음과 같은 오류가 발생합니다.
Error 6 error LNK2001: unresolved external symbol "public: static double Pub::Y_FACTOR" ([email protected]@@2NA) C:\Users\Pedro-Estevan-Juarez\Documents\Visual Studio 2012\Projects\Project2\Project2\main.obj Project2 Error 7 error LNK1120: 1 unresolved externals C:\Users\Pedro-Estevan-Juarez\Documents\Visual Studio 2012\Projects\Project2\Debug\Project2.exe 1 1 Project2
나는 이것이 현명한 문법이라고 생각한다. 누군가 나를 도와 줄 수 있을까?
그래, 효과가 있습니까? 이 일을하기에는 내게 정말 외국처럼 보입니까? – user2853108
예, C++에서는 직관적이지 않습니다. C++ 표준은 이런 식으로 정의합니다. 그리고 표준이 정의로 정의한다면,이 헤더 파일이 여러 cpp에 포함되면 ODR이 발생합니다. – ZijingWu