블로그는 나의 힘!
[ Programing ]/C++2010. 1. 31. 07:09

[ 배열 넘기기 ]
INT   m_nStopReelIndex[STOP_COUNT];    
INT* GetStopReelIndex() { return m_nStopReelIndex;  }
    
INT* m_nIndex  = m_cReel.GetStopReelIndex();    
==================================================================================
 
INT* Function() { return nPiece }
 
#define STOP_COUNT 5
class cReel
{
    INT   m_nStopReelIndex[STOP_COUNT];
public:
    cReel() { for( INT i = 0; i = STOP_COUNT; i++ ) m_nStopReelIndex[i]; }
    ~cReel() {}
    INT* GetStopReelIndex() { return m_nStopReelIndex;  }
}
 
class cEvent 
{   
    cReel  m_cReel;
    INT*  m_nIndex;
public:
    cEvent() {}
    ~cEvent() {}
    VOID SetTrace() { m_nIndex  = m_cReel.GetStopReelIndex(); }
}
 
VOID MAIN()
{
    cEvent Event;
     Event.SetTrace();
}
 
// 배열의 이름을 넘긴다.
// 배열의 처음부터 마지막까지 넘어간다. ( 배열 뒤에 Index는 다음 주소를 가르키는 것이기에 차례로 넘기는 것이다. )
// 주의할 점은 1차원배열을 넘긴다면 포인터로 받아야 한다는 이다. 즉, 그 배열의 길이는 따로 관리해야 하며, 포인터로 넘겨 받은 변수는 곧 배열과 같다.
// 주의할 점은 2차원 배열 이상을 넘긴다면 1차원으로 넘어간다는 점이다. EX : nPiece[2][3] 를 INT* Function() 으로 넘긴다면, nPiece[6]으로 받아 온다.



 - 배열을 다른 클래스나 함수, 메소드로 넘길 때 사용.
 - 배열의 이름을 넘기면 그 뒤에 배열의 Indx 주소가 차례로 넘어 가는 구조. 
 
 - 주의할 점은 2차원 이상의 배열 리턴시 1차원으로 넘어간다는 점.  1차원 배열 리턴시 포인터로 받아야 한다는 점.
Posted by Mister_Q