CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): Sequoia (매지동자)
날 짜 (Date): 2003년 11월 11일 화요일 오후 04시 24분 09초
제 목(Title): VC++에서 static변수를 다른 library에서 l



한쪽 라이브러리에 다음과 같은 클래스가 있습니다.

// TheClass.h
class TheClass
{
... blah blah ...

static TheClass s_TheClass;
};

// TheClass.cpp
... blah blah ...

TheClass::TheClass() { cout << "TheClass::TheClass()" << endl; }
TheClass TheClass::s_TheClass;


그리고 이 라이브러리를 링크하는 excutable 프로젝트에 다음과 같이 사용합니다.


// main.cpp
...
#include "TheClass.h"
... blah blah ...

int _tmain(...)
{
....
}


이때 TheClass::TheClass()가 프로그램이 시작할 때 자동으로 호출되지 않는군요.
static 객체의 정의상 s_TheClass는 프로그램이 시작할 때 초기화되어야 하는 것이 아닌가요?

TheClass의 정의가 main.cpp 안에 있으면 되는 걸로 봐서 링크할때의 정책 문제인 것 같습니다.
이것이 자동으로 초기화되게 하려면 어떤 링크 옵션을 주어야 할까요?


* 애인구함 * 중증 권태감 * 배고파함 * 피곤해함 *

[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.