NRVO1 [C++] 복사 생성자 및 할당(=) 연산자가 호출되는 시점 | 초기화와 할당의 차이 | RVO(Return Value Optimization) 먼저 초기화(Initializeinitialization)와 할당(Assignment)의 차이부터 살펴보자. 초기화는 객체의 생성과 동시에 초기 값을 설정해주는 것을 말한다. 흔히들 변수 선언만 해놓고 다른 곳에서 값을 할당하는 것을 초기화라고 하는 사람도 있는데, 엄밀히 말하면 이것은 초기화가 아니라 할당이다. 그 이유는, 일단 객체 선언 시 값을 대입을 하지 않으면 객체의 타입에 맞게 알아서 기본 초기화가 된다. 객체가 int, double과 같은 기본 타입(non-class)일 경우는 초기에 값을 할당하지 않을 경우 기본 초기화가 되며, c++에선 기본 타입에 기본 초기화 시 정의되지 않은 쓰레기 값을 갖는다. 반면 string과 같은 class 타입의 객체는 타입에 알맞게 기본 생성자를 호출하여 .. 2020. 2. 7. 이전 1 다음