The rule of five는 "소멸자, 복사생성자, 복사대입연산자, 이동생성자, 이동대입연산자"라는 다섯 가지 특수 멤버 함수 중 하나라도 정의한다면, 나머지에 대한 정의와 처리도 고민해야 한다는 원칙이다.이 다섯 가지 특수 멤버 함수는 서로 긴밀하게 관련되어 있으며, 그렇기에 Cpp 컴파일러는 개발자가 특정한 상황에 특정한 특수 멤버 함수를 정의하지 않으면 이에 대한 기본 형태를 자동으로 생성해버린다. 실제로 컴파일러의 클래스 최적화는 훨씬 복잡하고 다양한 형태로 나타난다고 한다. 개념적인 차원에서 이해하자.기본적으로 Cpp 표준에서 권장하는 방식은 5가지 중 하나라도 직접 정의했으면, 나머지도 직접 정의하라는 것이다. 이는 예상치 못한 동작을 예방하기 위함이기도 하고, 의사를 명확히 밝혀 협업자와..