[C++] 왜 멤버 초기화 리스트를 사용해야 할까?

Date:     Updated:

카테고리:

태그:

이 글은 ‘왜 멤버 초기화 리스트를 사용해야 할까?’ 라는 의문에서 시작하여 공부하고 정리한 글입니다.
기본 생성자 호출 후에 복사 대입 연산자를 연달아 호출하는 이전의 방법보다 복사 생성자를 한 번 호출하는 쪽이 더 효율적이다.

코드 예시

Person::Person(const string& firstName, const string& lastName)
    : mFirstName(firstName)   // 이건 초기화
{
    mLastName = lastName;   // 이건 대입
}

왜 멤버 초기화 리스트를 사용해야 할까?

  • 일단 코드 예시를 보고 대입과 초기화를 구분하자.
  • 대입으로 하게 된다면 일단 mLastName 변수는 기본 생성자가 호출된 뒤에 값을 대입한다.
  • 그러나 초기화를 한다면 mFirstName 변수는 복사 생성자를 통해 초기화 된다.
  • 기본 생성자 호출 후에 복사 대입 연산자를 연달아 호출하는 이전의 방법보다 복사 생성자를 한 번 호출하는 쪽이 더 효율적이다.
  • 또한 상수나 참조자의 경우는 대입이 불가능하므로 초기화를 해주어야 한다.


참조

Effective C++



💻 열심히 공부해서 작성 중이니 오류나 틀린 부분이 있을 경우 
  언제든지 댓글 혹은 메일로 알려주시면 감사하겠습니다! 😸

맨 위로 이동하기

Cpp 카테고리 내 다른 글 보러가기

댓글 남기기