[C++] 왜 멤버 초기화 리스트를 사용해야 할까?
카테고리: Cpp
태그: Why
이 글은 ‘왜 멤버 초기화 리스트를 사용해야 할까?’ 라는 의문에서 시작하여 공부하고 정리한 글입니다.
기본 생성자 호출 후에 복사 대입 연산자를 연달아 호출하는 이전의 방법보다 복사 생성자를 한 번 호출하는 쪽이 더 효율적이다.
코드 예시
Person::Person(const string& firstName, const string& lastName)
: mFirstName(firstName) // 이건 초기화
{
mLastName = lastName; // 이건 대입
}
왜 멤버 초기화 리스트를 사용해야 할까?
- 일단 코드 예시를 보고 대입과 초기화를 구분하자.
- 대입으로 하게 된다면 일단
mLastName
변수는 기본 생성자가 호출된 뒤에 값을 대입한다. - 그러나 초기화를 한다면
mFirstName
변수는 복사 생성자를 통해 초기화 된다. - 기본 생성자 호출 후에 복사 대입 연산자를 연달아 호출하는 이전의 방법보다 복사 생성자를 한 번 호출하는 쪽이 더 효율적이다.
- 또한 상수나 참조자의 경우는 대입이 불가능하므로 초기화를 해주어야 한다.
참조
💻 열심히 공부해서 작성 중이니 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 알려주시면 감사하겠습니다! 😸
댓글 남기기