1 ) std::string::erase가 비멤버 함수가 될 수 있을까? 2 ) std::string의 나머지 멤버 함수들을 분석하고, 비멤버 함수들로 만들 수 잇는지(또는 그렇게 하는 것이 좋은지) 설명하라 a. replace b. copy와 substr c. compare d. find 군(find, find_*, rfind ) 이렇게 질문이 있는데, 하나의 진리에서 나온 것들이다. "클래스 구현시, non-member, non-friend function 으로 만들 수 없는 함수만, member 함수로 만들어라." 이번 항목의 요약을 책에서 그대로 옮긴다. 분활과 캡슐화는 좋은것이다. 특히 C++의 경우에는, 알고리즘과 컨테이너를 분리시키는 것이 좋다. STL도 대부분 그런 원칙에 따라 만들어 졌다..
캡슐화 검색 결과
해당 글 2건
항목 40 : 일체적 클래스의 해악, 4부 : std::string 대미 ( 난이도 : 6 )
책 정리/Exceptional C++ Style
2009. 2. 10. 05:25
항목 23: 멤버 함수보다는 비멤버 비프렌드 함수와 더 가까워지자.
아아, 이해하는데 시간 걸렸다. friend 함수를 사용하라는게 아니라 비멤버 비프렌드 함수를 이용하라는 뜻이다! 자, 왜 비멤버 비프렌드 함수와 가까워져야 할까? 우선 이 말은, 클래스 공개 내부 멤버함수를 조합하는 편의 함수에게만 적용된다.. 이 함수는 클래스 내부에 접근할수가 없고, 1. 무조건 클래스의 멤버 함수만을 이용해야 하며, 2. 멤버 함수를 이용하기 위해서는 매개체인 객체가 항상 필요하기 때문이다. 즉, 어디서 호출되는지 한눈에 파악할수 있으며, 수정 구역도 한정되기 때문이다. 이것으로 구체적인 장점은 무엇이 있을까? 첫째, 캡슐화를 더 강화 할수 있다 왜냐하면, private 멤버 데이터 접근 함수가 적어지기 때문이다.(많은 수의 private 접근 허용 함수가 있다면, 많은 수의 변경..
책 정리/Effective C++ 3판
2008. 6. 7. 15:41
최근댓글