c++ 정적 객체 초기화 질문 ( 이펙티브 c++ 관해서 )
글쓴이: 으네이 / 작성시간: 토, 2017/11/11 - 2:39오전
이펙티브 c++ 3판 75쪽을 보면
파일 단위 기준으로 비지역 정적 객체들은 초기화 순서가 정해져 있지 않다고 읽었습니다.
한번 실험삼아 소스를 짜봤는데 한번 봐주십쇼 ㅠㅠ
헤더 파일입니다.
class Test { public: static int Num; };
소스 파일_1입니다.
#include "Header.h" Test T; int Test::Num = 10;
메인 함수가 포함된 소스파일 입니다.
#include <iostream> #include "Header.h" using namespace std; extern Test T; class User { public: static int N; User() { } }; User U; int User::N = T.Num; int main() { printf("%d", U.N); }
이런식으로 작성하고 컴파일 했는데 정상적으로 10이 출력돼네요
소스가 간단해서 10이 출력돼는거지 실제로는 소스_1 파일에 있는 Test T가 초기화가 먼저 될지는
모르는건가요? 아니면 제가 예제를 잘못 짠건가요?
Forums:
댓글 달기