move constructor
C++의 이동생성자는 &&로 정의할 수 있다. C++의 우측값 레퍼런스의 측징은 임시적 이라는 것이다. 예를 들어 벡터에 클래스를 push_back으로 삽입하는 경우에 다음과 같은 동작이 이루어진다.
- 임시 객체 생성
- 벡터 내부에서 임시 객체 복사
- 벡터에 삽입
- 임시 객체 소멸
하지만 이동 생성자를 사용하면 다음과 같이 동작한다
- 임시 객체 생성
- 백터 내부에서 이동 생성자 호출
- 백터에 삽입
이동 생성자를 사용하면 데이터를 복사할 필요 없이 임시 객체가 가리키던 포인터를 가리키면 된다. 이동 생성자는 다음과 같이 동작한다.
1 | StudyClass (StudyClass &&studyClass){ |