error LNK2001 : "~~" 외부기호를 확인할 수 없습니다. 

에러 이유: 클래스 내부에 static 변수를 선언 -> 해당 static 변수를 찾을 수 없을 때 발생

즉, static 변수를 클래스 내부에 선언하고 생성자 내에서 초기화 해 줄 때 객체가 생성될 때마다 리셋기 때문에 에러가 발생함 

 

<에러 코드- 예시>

// A.h
class A{
private:
	static int a;
public:
	A();
}

//A.cpp
A::A(){
	a=10;
}

 

<해결 방법>

int A::a=10;을 해주어야한다.

// A.h
class A{
private:
	static int a;
public:
	A();
}

//A.cpp

int A::a=10;	//수정부분

A::A(){
	a=10;
}

 

<cf>

static 변수는 전역변수의 성질도 갖고있기 때문에 main()함수 실행하기 전에 할당됨

 

+ Recent posts