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 |