항목 28: 내부에서 사용하는 객체에 대한 '핸들'을 반환하는 코드는 되도록 피하자.
이해하기 전에 알아야 하는 핸들이란? 다른 객체에 손을 댈 수 있게 하는 매개자를 지칭하며, 참조자등의 성격을 띄우고 있다.(외부 참조) 그렇다면 왜 '핸들'을 반환하는 코드를 피하는것일까? 쉽게 말해서 클래스 내부 멤버 변수는 private 으로 해야 한다고 배웠을 것이다. 그런데 멤버 변수에 대한 포인터나 레퍼런스를 반환하게 된다면, 그것이 const 로 한다해도, 외부에서 아주 손쉽게 변환을 가할수 있는 상태가 된다. 이 상태는 바로 캡슐화가 깨진 상태가 된다. 캡슐화가 왜 중요한지는 다들 알것이므로 생략한다. 저자 역시, 핸들을 반환해야 하는 어쩔수 없는 경우에만 핸들을 반환한다고 말한다. 어찌 되었던, 클래스 private에 넣는것을 간과하여, 코딩을 하면 안된다는 것을 알려 준다. 이것만은 잊..
책 정리/Effective C++ 3판
2008. 6. 28. 03:20
최근댓글