객체에 이동 의미론(move semantic)을 적용하려면이동 생성자와 이동 대입 연산자를 정의해야 한다.그러면 컴파일러는 원본 객체가 임시 객체로 되어있어서연산을 수행한 후 자동으로 제거되거나사용자가 명시적으로 std::move()를 호출하여 삭제될 때앞서 정의한 이동 생성자와 이동 대입 연산자를 이용한다.즉 메모리를 비롯한 리소스의 소유권을 다른 객체로 이동시킨다.이 과정은 멤버 변수에 대한 얕은 복제와 비슷하다.또한 할당된 메모리나 다른 리소스에 대한 소유권을전환함으로써 댕글링 포인터나 메모리 누수를 방지한다.이동 생성자와 이동 대입 연산자는 원본 객체에 있는데이터 멤버를 새 객체로 이동시키기 때문에그 후 원본 객체는 정상이긴 하나 미확정된 상태로 남게 된다.흔히 이러한 원본 객체의 데이터 멤버의 ..