|
다른 분이 답을 이미 했는데 또 답을 달아 센스 없어 지송....
클래스 내의 static 변수 선언은 그 변수를 참조해서 쓴다는 의미이지 실제 그 변수를 클래스 내에 포함하겠다는 의미가 아닙니다.
그러므로 실제로 *.cpp 파일에 변수를 아래와 같이 정의해주지 않으면 당근히 링커 에러가 나지요.
int Form1::myint;
또는
int Form1::myint = 0;
부언하자면,
컴파일 에러를 만났을때 컴파일러 문제는 의심하지 않으셔도 됩니다.
이미 수십만명이 검증하다시피 한 것이므로.
쥐르미온 님이 쓰신 글 :
: static으로 멤버 변수를 선언하였더니 컴파일까지는 잘 되는데 에러가 납니다.
:
: 제가 했던 대로 똑같이 한 번 해보세요.
:
: 헤더파일의 Form1선언부에서
: private:( public:으로 하셔도 상관없습니다.)안에
: static int myInt;
: 라고 입력하시구요.
:
: 소스파일의 Form1 생성자에서
: myInt = 3;
: 이렇게 입력하세요.
:
: 그리고 컴파일 하세요.
: 컴파일까지는 아주 잘 될 것입니다.
:
: 하지만, 링크 에러가 나버립니다. 이게 어찌된 일인지.
:
: 누구 아시는 분 없나요? 제 질문엔 답변이 안 올라오네요.
: 안 되면, 넉두리라도 좀 부탁합니다~
|