[c++] 이니셜라이저 리스트 (Initializer lists)
C++11 부터 추가된 이니셜라이저 리스트(initializer lists)는 배열, 구조체, 클래스 객체의 멤버 변수를 초기화하는 간편하고 유연한 방법을 제공합니다.
이니셜라이저 리스트 기본 문법
이니셜라이저 리스트의 기본 문법은 다음과 같습니다:
Type object_name{value1, value2, value3...};
여기서 Type
은 초기화할 객체의 데이터 타입이고, object_name
은 해당 객체의 이름입니다. value1
, value2
, value3
등은 해당 객체를 초기화할 값들입니다.
배열 초기화
int arr[]{1, 2, 3, 4, 5}; // 배열 초기화
구조체 초기화
struct Point {
int x;
int y;
};
Point p1{10, 20}; // 구조체 초기화
클래스 객체 초기화
class MyClass {
public:
int data;
MyClass(int value) : data(value) {}
};
MyClass obj{5}; // 클래스 객체 초기화
초기화리스트의 장점
이니셜라이저 리스트를 사용하면 축약된 초기화를 할 수 있을 뿐 아니라 초기화 오류를 방지하고 코드 가독성을 높일 수 있습니다.
이니셜라이저 리스트를 사용함으로써 데이터 멤버들이 private일 경우에도 클래스 객체를 초기화할 수 있습니다.
또한, 이니셜라이저 리스트를 사용하면 배열의 크기를 명시적으로 지정할 필요가 없어져서 코드 유연성이 높아집니다.
여기까지 이니셜라이저 리스트에 대한 간략한 소개였습니다. 만약 더 깊이있는 이해를 원하신다면, 아래 참고 자료를 참조하시기 바랍니다.
참고 자료
- C++ reference: Initializer lists
- Effective Modern C++ by Scott Meyers (Chapter 7: “The Concurrency API”)