프로그래밍/의문
[c++] static 변수의 초기화 시점
제페
2016. 2. 22. 09:09
반응형
함수의 정의된 static 객체 => 함수가 처음 호출되는 시점에 인스턴싱
1 2 3 4 5 6 | static any_class& get() { static any_class instance; return instance; } | cs |
클래스에 정의된 static 객체 => 명확한 스펙이 없음
1 2 3 4 5 | class any_class { //... static any_value value; }; | cs |
따라서 정적 메모리에 존재하는 변수들의 초기화 시점을 제제하는 유일한 방법은 모든 정적 메모리 변수를 하나의 변환 단위에 넣어주며, 헤더에 모두 extern 키워드를 사용하는 방법이 최선이다.
출저
more effective c++
반응형