Skip to content

소괄호 초기화와 중괄호 초기화의 차이점을 설명해 주세요 {C++11}


소괄호 초기화는 C++11에 도입된 초기화 방법입니다. 암시적인 형변환을 막고 기존의 함수의 정의처럼 보이는 초기화 문제를 해결했습니다.

std::initializer_list와 혼동이 올 수 있는데 어떤 차이가 있나요?#

C 배열을 초기화할 때 사용하는 문법 그대로 컨테이너들을 간단하게 초기화할 수 있습니다. 하지만 uniform initialization과 모양이 흡사하기 때문에 컨테이너 타입 객체를 초기화할때 주의해야 합니다.

벡터 생성자의 첫번째 인자로 size_type count가 있는데, 소괄호 생성자를 사용하면 count 개수만큼의 공간을 할당받아놓고, 중괄호 생성자를 사용하면 원소 하나짜리 벡터가 만들어지게 됩니다. 왜냐면 원소 한개짜리 initializer_list라고 생각하기 때문입니다. C++은 중괄호 연산자에 대하여 initializer_list를 받는 생성자가 최우선으로 고려된다고 합니다.

초기화의 종류#