본문 바로가기
C++ 코드최적화 2.2 - 초기화 리스트, 객체 할당 속도 C++ 코드최적화 2.2 - 초기화 리스트, 객체 할당 속도 10.3.3 멤버 초기화 리스트(Member-Initialization Lists)당신이 4장, "Special Member Functions: Default Constructor, Copy Constructor, Destructor, and Assignment Operator,"에서 코드최적화를 읽었듯이, 멤버 초기화 리스트는 const 및 레퍼런스 데이터 멤버들의 초기화를 위하여 그리고 기저 또는 내장된 하위객체의 생성자로 인수들을 전달하기 위하여 요구된다. 만약 그렇지 않다면 데이터 멤버들은 생성자 몸체 내부에서 할당되거나 멤버 초기화 리스트에서 초기화될 수 있다. 예를 들면, 12345678910class Date // mem-initi.. 2018. 6. 29.
Qt Creator, class' will be initialized after [-Wreorder] variable [Qt Creator 경고 강좌] class' will be initialized after [-Wreorder] variable 경고 메세지 'class' will be initialized after [-Wreorder] variable C++에서도 전역, 멤버 등의 변수를 사용자가 실수로 놓칠까 봐, 또는 미묘한, 확인하기 힘든(subtle) 에러가 발생할 소지를 줄이기 위해 초기화 코드와 리스트에 차이가 발생하면 경고를 띄웠었습니다. 그런 이유로 아래 코드를 빌드하면 아래 아래처럼 경고가 뜹니다. 변수 초기화 순서가 원인입니다. 3번째에 초기화될 것은 double형 변수 d지만, 실제론 int형 i가 초기화 돼버려 경고가 뜹니다. 초기화 리스트에는 : i -> f -> d -> b의 순입니다.실제.. 2017. 2. 19.