list initialization, {} 초기화

Oak_Cassia·2021년 12월 9일
0

중괄호로 초기화하는 것{}

int a=0;
int b(0);
int c{0}; // 같다 int c= {0};

Dog d1;
Dog d2{d1};

int arr[]={1,2,3};

vector<int> v1;
v1.push_back(1);

vector<int> v2(10,1);

중괄호 초기화를 이용해
vector<int> v3{1,2,3,4}
가능

축소 변환 방지
int x=0;
double y{x}; //불가능

축소변환: 가능한 값의 일부를 저장하지 못할 수도 있는 데이터 형식으로 값을 변경하는 것
확대 변환: 원래 데이터의 가능한 값을 허용할 수 있는 데이터 형식으로 값을 변경. 확대 변환은 소스 값을 유지하지만 해당 표현을 변경할 수 있습니다.(?)

Dog d4(); //함수 선언 문법, 중괄호 하면 가능
Dog d4{};

이니셜라이져 리스트
초기화 할 때 쓰는 리스트

Dog (inityializer_list<int> li)
{
	... 
}

Dog(int old, int height)
{
	...
}

Dog에 인자 두개 넘겨주면 이니셜라이져 리스트 버전 생성자를 호출한다. 우선 순위가 높다.

profile
rust로 뭐할까

0개의 댓글