| [ 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 안에 있으면 되는 걸로 봐서 링크할때의 정책 문제인 것 같습니다. 이것이 자동으로 초기화되게 하려면 어떤 링크 옵션을 주어야 할까요? * 애인구함 * 중증 권태감 * 배고파함 * 피곤해함 * |