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:


댓글 달기