클래스 디자인 문제인 operator
책 정리/Exceptional C++ 검색 결과
이번엔 클래스에 대하여 알아 보는 항목이다. 클래스란? "클래스는 연관되어진 데이터와 데이터 처리 함수들의 모음을 정의한 것이다" 이제 질문의 시간을 갖어 보자. ① 어떤 함수들이 클래스의 "일부"일까? 그리고 ② 클래스의 인터페이스는 무엇으로 만들어 졌을까? 힌트 확실히 non-static 멤버 함수들은 단단히 클래스와 연결되어 졌다. 그렇다면 static 멤버 함수들은과 자유(free) 함수들의 경우는 어떠한가? 항목 31의 함축적 의미를 시간을 두어 생각해 보자. 분석 ①,② 이 두 질문들의 대답을 좀더 심화 시켜 본다면, 이 대답이 C 형식의 개체지향 프로그래밍에 어떻게 적용 될까? C++의 Koening 검색이 어떻게 적용될까?, Myers 예는? 클래스 의존성을 분석하고 개체 모델을 디자인하는..
C++ 은 개체지향 프로그래밍인가? 반은 맞고 반은 틀린 말이다. 자세한 것은 http://ikpil.tistory.com/400 참조 해 보는것도 나쁘지 않을 것이다. 조금 생각을 해 보고 다음 질문에 답해 보자. "C++은 포장(encapsulation), 예외 처리(exception handling), 상속(inheritance), 템플릿(template), 다형성(polymorphism), 강력한 형(type) 지원, 완벽한 모듈(module) 시스템을 포함하는 많은 발전된 객체지향적 생성을 지원하는 강력한 언어 입니다" 자! 논의 해 보자. 분석 음~ http://ikpil.tistory.com/400 와 비슷한 이야기 이다. Effective C++ 3판 항목 1이나 Exceptional C+..
사실 난 이게 난이도 6이라는게 이해가 되지 않는다. 왜냐하면 new 연산자는 컴파일러에 의해서 한가지 단계가 감춰졌을 뿐더러, 쫒아 가기 힘든 구조라, 추론하기도 어렵다. 즉, 일개 프로그래머가 파악하기 힘든 구조이기 때문이다.(... 내가 멍청한 것 일 수도..) 이번 메모리 관리 부분은 그 유명한 Effective C++ 3판 항목 49 ~ 항목 52와 연계해서 보면, 몇가지는 추론을 통해 알 수 있을 것이다. 그렇다면 어떤 문제가 있는지 알아보고, 생각을 해보자.(생각 자체를 할 수 없다면 바로 분석으로 넘어가는게 좋다. 워낙에 정보가 없는 .. 연산자 이니..) 1. class B { public: virtual ~B(); void operator delete ( void*, size_t ) t..
이번 항목은 표준 auto_ptr을 안전하고 효율적으로 사용하는 방법에 대한 기본적인 것들을 다룬다. C++ 세계에 있어, 이번 항목은 좀 특별하다. 왜냐하면 최종 C++ 98 표준안 : "Final Draft International Standard for Programing Language C++"이 완벽하게 결의되는 마지막 모임이 시작되는 전날에 auto_ptr의 이 문제점이 알려 졌기 때문이다. 그렇다면 이 문제가 무엇인지 알아보자! #include #include #include #include class T { public: bool operator( const T& rhs ) const { return rhs.a > a; } int value( void ) const { return a; }..
최근댓글