항목 38 : 일체적 클래스의 해악, 2부 : std::string 리팩토링 ( 난이도 : 5 )
저번 항목에 이어서, 이번 항목은 리팩토링이다. 때 마침 리팩토링 관련 서적을 읽고 있던 터라, 그 필요성을 알게 되었었터라 "무엇을 어떻게 리팩토링 할까?" 에 대해서 생각해 보게 된다. 1 ) std::string의 멤버 함수들 중 멤버가 아니면 안되는 것들은 무엇이 있고, 왜 그런가? 멤버가 아니면 안되는 함수들은, 생성자, 소멸자, 할당 연산자, operator[] 연산자들이 있다. 이것은 멤버가 아니면, 어찌 할 수 없는 것들이다. 왜 생성자와 소멸자, operator=과, operator[] 연산자들은 왜 멤버로 놔야 할까? 여기서 중요한 개념을 짚어 봐야 한다. 스콧 마이어스는 "멤버로도 구현할 수 있고, 비친구 비멤버로도 구현 할 수 있는 함수가 있다면, 비친구 비멤버를 선호 해야 한다" ..
책 정리/Exceptional C++ Style
2009. 2. 4. 13:45
최근댓글