배열은 각 원소 초기화 보장 X
vector는 보장
모든 객체를 사용 전에 초기화하자
- 기본 타입은 사용전에 초기화를 한다
- 멤버는 멤버 이니셜라이저 사용
- 멤버의 생성자 인자로 전달
- 하지만 기본 타입은 초기화와 대입의 비용 차이가 없다.
- 생성자도 많고 변수도 많아 가독성이 떨어지면?
초기화 순서
- 부모 클래스는 자식 클래스보다 먼저
- 클래스 멤버는 선언된 순서로 초기화
- 이니셜라이저 리스트에서 순서가 달라도 위 법칙 따름
비지역 정적 객체
- 컴파일된 소스파일이 2개 이상
- 각 소스 파일에 비지역 정적객체 존재
한쪽이 초기화 진행되면서 다른쪽을 사용할 때
초기화 되었는지 어떻게 알 것인가?
- 초기화 순서는 정해져 있지 않다.
- 지역 정적 객체로 바꾸자
- 지역정적객체는 함수 호출 때 정의에 최초로 닿으면 초기화
- 초기화된 객체의 참조자를 반환하게 하자
- 반환 함수가 호출될 일이 없으면 객체의 생성 소멸 비용 생기지 않게