class CChar
{
private:
int posX,posY;
public:
void init(HWND hwnd);
void setPosX(int x);
int getPosX();
};
이런 클래스를 만들어 놓고
class CCharManager
{
public:
map<int,CChar*> m_UserChar;
맵을 선언한다음에
public:
CCharManager();
~CCharManager();
void Init(HWND hwnd);
int getPosX();
int getPosY();
};
이렇게 정의를 해줬습니다
CCharManager::CCharManager()
{
m_UserChar[0]=NULL;
}
CCharManager::~CCharManager()
{
delete[] m_UserChar[0];
}
int CCharManager::getPosX()
{
map<int,CChar*>::iterator iter;
for(iter=m_UserChar.begin();iter!=m_UserChar.end();++iter)
{
if (iter->first==0)
return iter->second->getPosX();
}
return 0;
}
이걸 제 나름대로 해석해보면
int형의 키값과 CChar포인터 형의 밸류값을 가진 iter라는 애를 선언하고
iter에 m_UserChar의 첫번째 짝?(키와 밸류)과 같게 초기화 해주고 솰라솰라 (뒷부분은 굳이 설명안해도될듯해서)
만약 iter의 키값이 0일때만
iter의 밸류값이 가리키는 getPosX()를 리턴해라 인데요
이렇게 해서 CChar의 getPosX()의 리턴값을 가지고 오려고 하거든요
제 방법 이 틀렸나요? 고치는 부분좀 알려주세요
저기서 굳이 왜 map을 쓰는지 모르겠다
그리고 키가 0일때 값을 가져오고 싶으면 그냥 return m_UserChar[0]; 하면되지