On this page
article
C++ Uniform Initialization
일관된 초기화 (내용 및 도입이유, 함수인자 관련 사용법)
C++11에서 도입된 일관된 초기화 혹은 중괄호 초기화
기존 초기화 문제점
변수의 타입/종류에 따라 초기화 방법이 다름.
int n1 = 10; int n2(10); int x[2] = {1, 2}; Point pt = {1, 2};
암시적 형변환에 따른 데이터 손실 가능
- char c = 300; → 경고가 없어
장점
- 일관된 초기화 방법
- 데이터 손실이 발생할 경우 컴파일 에러 발생
함수 인자
- 함수 인자에 중괄호를 사용한 값 전달 가능
void goo(Point p) {} -> goo({1,2})
초기화
- copy초기화
- int n = {10}
- direct 초기화 단어 인지
- int n {10}
- explicit 생성자를 가지는 타입은 direct 초기화만 가능하기때문에 인지
- copy초기화