RESOURCE RULES

C++ 자원 소유 클래스는 복사, 이동, 소멸 책임을 한 세트로 설계해야 한다

동적 자원을 직접 들고 있으면 기본 복사가 얕은 복사가 되어 이중 해제 같은 오류로 이어질 수 있다.

Rule of Three

소멸자, 복사 생성자, 복사 대입을 함께 정의한다.

Rule of Five

이동 생성자와 이동 대입까지 포함해 소유권 이동을 처리한다.

Rule of Zero

표준 컨테이너와 스마트 포인터에 소유권을 맡긴다.

설계 기준: 직접 delete가 필요하다면 특별 멤버 함수 전체를 점검하고, 가능하면 직접 소유를 피한다.