이동 생성자
-
생각보다 자주 보이는 생성자개발/C·C++ 2021. 8. 4. 22:46
임시 객체는 시스템에 부담을 주는 존재입니다. C++에서 이동 의미론이나 rvalue reference 같은 개념을 도입한 이유이기도 할 겁니다. copy elison(복사 생략)처럼 임시 객체를 이용해서 초기화가 이루어지는 경우, 직접 초기화하는 것처럼 컴파일러가 최적화를 해주는 것도 같은 맥락일 것입니다. copy elison을 이용할 수 있는 환경이 아니라면 이동 의미론을 활용하는 편이 좋다고 생각합니다. 간단한 예제 몇 가지를 들어보겠습니다. 다음과 Person 클래스가 있습니다. class Person { public: Person(int data) :_data(data) { cout