[C++] 이니셜라이저 리스트의 실행 순서

지즈·2025년 8월 27일
0

C++

목록 보기
5/5
post-thumbnail

클래스의 변수 iSizepArr가 이니셜라이저에 작성한 순서대로 할당될 것이라고 생각했다. 그래서 iSize가 초기화 됐을 거라 가정하고 이니셜라이져에서 바로 이 변수를 사용했다.



하지만 자꾸 예외가 발생했고 구글링 결과, 멤버 변수의 초기화는 이니셜라이저 작성 순서가 아닌 클래스에 선언한 순서대로 진행된다는 걸 알게 됐다.


클래스에서 변수 선언 순서를 바꾸고 다시 실행하자 오류가 발생하지 않게 됐다.
하지만 멤버 변수가 아닌 인자로 넘어오는 값을 초기화에 사용하는 게 더 맞아 보인다.


정리

C++에서 멤버의 초기화 순서는 ‘이니셜라이저 리스트의 나열 순서’가 아니라 ‘클래스 내 선언 순서’로 고정된다. 클래스에서 먼저 선언된 멤버가 먼저 초기화된다는 걸 명심하자.

profile
클라이언트 개발자가 되는 그 날까지 킵 고잉

0개의 댓글