항목 18 : 실수가 일어날 수 없는 인터페이스를 제공하자. 매개변수 실수 방지 일,월,년을 매개변수로 받는 멤버 함수를 만든다고하자. 세가지 매개변수가 모두 int라면 사용자가 어느나라 사람이느냐에 따라서 일월년의 순서가 헷갈릴 수 있다. 따라서 일,월,년에 해당하는 클래스를 각각 만들고 이를 매개변수로 받는 등으로 하여 헷갈리는 상황을 방지할 수 있다.자원 해제 실수 방지동적할당한 자원을 포인터만 그대로 돌려주는 함수는 좋지 못하다. 사용자에게 할당해제 책임을 맡기게 되기 때문이다. 이를 막기 위해선 스마트 포인터등에 담아서 리턴해주는 것이 좋다. 추가로 단순 할당해제가 아닌 추가적인 자원 해제가 필요하다면 스마트 포인터의 삭제자를 활용하면 된다. 스마트 포인터의 추가적인 이점은 자원의 할당과 해제가..