한국어 Translate to English (by Google) 日本語に翻訳します (by excite.co.jp)       작성자: Kyuseo의 게임 프로그래밍 이야기 :: http://www.soonsin.com | 트위터 @kyuseo

개요..

 

MFC 6.0 에서 CArray, CList, CMap 클래스는 GetSize() 함수와 GetCount() 가 혼용으로 사용되어 불편한 경우가 많습니다.

 

이를 규격화하여 하나의 함수를 호출하는 방법을 알려드립니다.

 

 

방법

 

1. MFC 7.0 으로 업그레이드 합니다.

 

MFC 7.0 에서는 GetSize() 함수와 GetCount()함수를 모두 사용할 수 있습니다.

하지만 하나의 코드로 통일하여 사용하시기를 권장합니다. (Kyuseo 는 GetSize() 를 사용합니다.)

 

 

2. MFC 템플릿 클래스를 상속받아 함수를 만듭니다.

 

아래와 같이 CArray 를 상속받아 자신이 원하는 형태의 CArray 를 만들어 사용합니다.

 

/**

    @class    CPArray

    @date    2006/3/3

    @author    채경석(kyuseo99@chol.com, http://a.tk.co.kr)

    @brief

*/

template< class TYPE, class ARG_TYPE >

class CPArray : public CArray< TYPE, ARG_TYPE >

{

public:

    using CArray< TYPE, ARG_TYPE >::GetCount;

 

    INT_PTR GetCount( ARG_TYPE t, INT_PTR nStart = 0 ) const; ///< 주어진인자의총개수를구한다.

    INT_PTR Find( ARG_TYPE t, INT_PTR nStart = 0 ) const; ///< 주어진인자의첫번째것을찾는다.

    INT_PTR Delete( ARG_TYPE t, INT_PTR nStart = 0 ); ///< 주어진인자에해당하는것을지운다. (리턴:지워진개수)

 

    TYPE& GetHead();

    const TYPE& GetHead() const;

    TYPE& GetTail();

    const TYPE& GetTail() const;

 

    TYPE RemoveHead();

    TYPE RemoveTail();

 

    void Sort( BOOL bDesc = FALSE ); ///< 정렬한다. ( 해당TYPE >, <, == 가정의되어있어야한다. )

    void Sort( int ( __cdecl *Compare )( const void *pArg1, const void *pArg2 ) ); ///< 외부함수로정렬한다.

    void Suffle( int nCount = 5 ); ///< 섞는다.

 

    // 자체메모리할당된포인터전용함수

    void DeleteRemovtAt( INT_PTR nIndex, INT_PTR nCount = 1 ); ///< delete 하고RemoveAt 한다.

    void DeleteRemoveAll(); ///< delete 하고RemoveAll 한다.

 

protected:

    static int CompareAsc( const void *pArg1, const void *pArg2 );

    static int CompareDesc( const void *pArg1, const void *pArg2 );

};

 

 

 




qrcode
이 글의 QR 코드입니다.


이 저작물은 비영리, 출처:Kyuseo 프로그래밍 이야기 :: http://www.soonsin.com 표시하면 스크랩 하실 수 있습니다.

별도로 출처 표시가 되지 않은 저작물은 Kyuseo에게 저작권이 있습니다.   ★──━━ 행복한 하루 되세요 ━━──★

BLOG main image
93년부터 프로그래밍을 독학한 게임 프로그래머 kyuseo의 프로그래밍 정보와 게임 개발 강좌를 주로 다룹니다. by kyuseo

카테고리

분류 전체보기 (623)
누리게임즈 (4)
Kyuseo 소개, 잡담 (161)
만든 게임 및 프로그램 (98)
-----------★----------- (0)
개발자 팁 (65)
스마트폰 게임 개발 (47)
C++ 개발 (119)
------------------------♣ (0)
컴퓨터 활용 팁 (98)
게임, 서적, 문화 소감 (31)
------------------------♥ (0)
전체 : 2,747,997
오늘 : 33 어제 : 207