Language/C++

[C++] 다양한 변수 초기화 방법

마탁이 2020. 12. 13. 16:37

1. 복사 초기화

  - int value = 5;

 

2. 직접 초기화

  - int value(5)

  - 직접 초기화는 함수 호출과 매우 유사하지만,

    컴파일러는 어떤 이름이 변수이고 어떤 이름이 함수인지를 추적해 제대로 컴파일 한다.

  - 직접 초기화는 일부 데이터 타입에서 복사 초기화보다 성능이 뛰어날 수 있다.

    클래스에 관해선 다른 이점도 있다. 또한, 초기화와 할당을 구분하는 데 도움이 된다.

 

3. C++ 11의 유니폼 초기화

  - '중괄호 {}' 를 사용한 유니폼 초기화

  - 복사 초기화 및 직접 초기화는 일부 타입 변수에 대해서만 작동한다.

  - 모든 데이터 타입에서 작동하는 단일 초기화 메커니즘을 제공하기 위해

    C+11은 유니폼 초기화라는 새로운 형태를 제공한다.

  - e.g)

int value{5};
int value{} -> 기본 초기화 (변수를 0으로 초기화)
int value{4.5} -> 유니폼 초기화는 형 변환을 허용하지 않는다. (컴파일러에서 경고 또는 오류 발생)

'Language > C++' 카테고리의 다른 글

[C++] 선언과 정의  (0) 2020.12.13
[C++] 변수 크기와 sizeof() 연산  (0) 2020.12.13
[C++] Java 와 C++ 유사점 및 차이  (0) 2020.12.13
[C++] float 와 double  (0) 2020.12.13
[C++] 배열과 연결 리스트의 차이  (0) 2020.12.13