새소식

인기 검색어

CS/C++

중괄호 초기화와 다양한 초기화 방법

  • -

중괄호 초기화 (Brace Initialization):

C++11부터 소개된 중괄호 초기화는 객체의 초기화 방법을 통일하고자 도입되었다.

이 방식의 장점:

  • 일관된 문법: 동일한 중괄호 {} 문법을 사용하여 변수, 객체, 배열, STL 컨테이너 등을 초기화할 수 있다.
  • narrowing conversion 방지: {}를 사용하여 초기화할 때 형 변환이 수행되지 않거나 값의 손실이 발생하지 않도록 한다.
int i{3.14}; // 컴파일 오류. narrowing conversion 방지
  • 기본 생성자와 동일한 문법: 중괄호를 사용하여 기본 생성자를 호출하는 것도 가능하다.
std::vector<int> vec{}; // 비어 있는 벡터 생성

다양한 초기화 방법들

C++에서는 여러 가지 방법으로 변수나 객체를 초기화할 수 있다:

직접 초기화 (Direct Initialization): 전통적인 괄호 ()를 사용한 초기화 방법이다.

int a(10);
std::string str("Hello");

복사 초기화 (Copy Initialization): = 연산자를 사용한 초기화 방법이다.

int a = 10;
std::string str = "Hello";

Uniform Initialization (Brace Initialization): 중괄호 {}를 사용한 초기화 방법이다.

int a{10};
std::string str{"Hello"};

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.