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
항목 19: 클래스 설계는 타입 설계와 똑같이 취급하자.
클래스 설계? 타입 설계? C++에서 새로운 클래스를 설계하는다는것은 타입을 설계하는 것과 같다. 왜냐하면 그 클래스에는 operator 오버로드, 메모리 할당 및 해제, 객체 초기화 및 종료 등 모두 클래스에서 하기 때문이다. 타입은 어떻게 설계 할것인가? EC++ 3판에서는 많은 것들 중 고수들은 몇가지 질문을 스스로 던저 자신을 괴롭히며 만든다고 한다. 1. 새로 정의한 타입의 객체 생성 및 소멸은 어떻게 이루어져야 하는가? 2. 객체 초기화는 객체 대입과 어떻게 달라야 하는가? 3. 새로운 타입으로 만든 객체가 값에 의해 전달되는 경우에는 어떤 의미를 줄 것인가? 4. 새로운 타입이 가질 수 있는 적법한 값에 대한 제약은 무엇으로 잡을 것인가? 5. 기존의 클래스 상속 계통망에 맞출 것인가? 6...
책 정리/Effective C++ 3판
2008. 6. 5. 01:45
최근댓글