81. C++ 초기화 리스트

C++ 초기화 리스트

1. 개요

1.1 문서 개요

이 문서는 C++에서 생성자 초기화 리스트(initializer list)에 대해 설명합니다. 객체 생성 시 멤버 변수를 초기화하는 방법 중 하나로, 효율성과 필수적인 초기화를 위해 중요한 기능입니다.

2. 내용

2.1 초기화 리스트의 구조와 필요성

2.1.1 문법 구조

class Example {
private:
    int a;
    double b;
public:
    Example(int x, double y) : a(x), b(y) { }
};

위와 같이 : 이후에 멤버 변수 초기화 구문을 나열하며, 본문 {} 전에 실행됩니다.

2.1.2 필요성

  • const 또는 reference 멤버는 반드시 초기화 리스트에서 초기화해야 합니다.
  • 사용자 정의 타입 멤버가 복잡한 생성자를 갖는 경우 초기화 리스트를 통해 생성자 호출을 직접 제어할 수 있습니다.
  • 초기화 리스트를 사용하는 것이 성능 면에서 효율적입니다.

2.2 초기화 리스트 사용 예

2.2.1 const 멤버 초기화

class ConstMember {
private:
    const int id;
public:
    ConstMember(int value) : id(value) { }
};

2.2.2 참조형 멤버 초기화

class RefMember {
private:
    int& ref;
public:
    RefMember(int& r) : ref(r) { }
};

2.2.3 기본 생성자 호출 순서

초기화 리스트의 멤버 초기화 순서는 클래스 내 선언 순서와 일치하며, 리스트 나열 순서와 무관합니다.

3. 마무리

C++ 초기화 리스트는 객체의 멤버를 효율적으로 초기화하는 수단으로, 특히 상수 멤버, 참조 멤버, 사용자 정의 타입 초기화 시 필수적으로 사용됩니다. 생성자 본문 전에 실행되며, 선언 순서에 따라 초기화됩니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

error: Content is protected !!
위로 스크롤