분류 전체보기 검색 결과
관련 링크 : http://kldp.org/node/96019 실험코드 #include #include class CBase { public: CBase() : a(0) { } public: virtual void Test(void) { for(int i = 0; i < 10; ++i) { a = i; } } void Test2(void) { for(int i = 0; i < 10; ++i) { a = i; } } protected: int a; private: CBase(const CBase& rhs); CBase operator=(const CBase& rhs); }; class CDerived : public CBase { public: virtual void Test(void) { for(int ..
관련 링크 : http://msdn.microsoft.com/en-us/library/ms645540(VS.85).aspx Virtual-Key Codes The following table shows the symbolic constant names, hexadecimal values, and mouse or keyboard equivalents for the virtual-key codes used by the system. The codes are listed in numeric order. ConstantsVK_LBUTTON (0x01)Left mouse buttonVK_RBUTTON (0x02)Right mouse buttonVK_CANCEL (0x03)Control-break processin..
항목 34 에서 가상 함수의 단점을 지적한 부분이 책에는 있는데, 나 같은 경우 생략했다. ^^; 단점은 가상함수는 기본 정의도 제공되기 때문에, 제공된 기본정의를 사용하다보면, 정작 다른 작동을 해야 할 때도 재정의를 해야 한다는것을 까먹고, 기본정의를 사용하여 디버깅이 아주 힘들수 있다는 점이다. 이것을 애초에 막고자 하려면 가상 함수를 대채할 무엇인가가 필요하다는 주제로 쓰여진 항목 35 이다. 자~ 이러한 단점들이 있음에도 가상 함수를 사용 한다는것을 찜찜해 하는 영리한 사람들은 생각하기 시작했다. "대체 할 수 있는게 없을까?" 필자는 두 팔을 다 걷어, 다른 방법을 몇가지 알려 준다고, 곽용재씨께서 말씀해 주셨다. ㅋ; 하나, 비가상 인터페이스 관용구(non-virtual interface :..
보통의 경우 메모리 할당은 new 나 malloc 으로 처리 한다. 하지만 좀더 상세하게 작동하고자 할 경우 할당자를 사용 한다고 하니, ... 일단 짚고 넘어가야겠다. 할당자(allocator)를 찾아봐도, 1. operator new 나 operator new[] 와 마찬가지로 메모리 할당과 해체를 해 주는 객체이다 2. 하지만 그 사용 방법이 전혀 다르다 3. 할당자에서 정의된 메모리의 모델의 포인터와 참조자에 typedef를 제공해야 한다. 4. 같은 타입의 할당자 객체는 동등하고, 상등 비교를 수행 한다. (같은 타입의 할당자는 똑같다는 말로 해석 됨) 5. 할당자는 상태를 갖지 않는다. (비정적(non-static) 데이터 멤버를 전혀 가지지 않는다.) 5번 사항으로 인하여, STL은 두 개의..
최근댓글