프로그래밍/의문

[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++ 

http://en.cppreference.com/w/cpp/language/initialization

반응형