Получить std::list в другом файле

#c

#c

Вопрос:

Я хотел бы знать, как я могу получить доступ к std::list в другом файле?

Мой список в .h

 class MobActivity
{
public:
MobActivity(){};
~MobActivity(){};
typedef struct _CreatureData
{            
     WORD           MapID;
     bool           IsDead;
     DWORD          KilledTime;
     bool           isSpawned;
     RwUInt32       DisplayID;

} CreatureData;

typedef std::list<CreatureData*> MONSTERLIST;
typedef MONSTERLIST::iterator MONSTERLISTIT;
MONSTERLIST                 m_monsterList;

};
 

Теперь я хотел бы получить доступ к этому списку в другом файле с именем b.h

 void MobActivity::RunSpawnCheck(CNtlPacket * pPacket, sVECTOR3 curPos)
    {
        CGameServer * app = (CGameServer*) NtlSfxGetApp();

        CreatureData * creaturelist;
        for (MONSTERLISTIT it = m_monsterList.begin(); it != m_monsterList.end();   it )
        {
            creaturelist = (*it);


                CNtlPacket packet(sizeof(sGU_OBJECT_CREATE));
                sGU_OBJECT_CREATE * res = (sGU_OBJECT_CREATE *)packet.GetPacketData();
                res->wOpCode = GU_OBJECT_CREATE;
                res->sObjectInfo.objType = OBJTYPE_MOB;

        }
    }
 

Есть идеи, как я мог бы это сделать?

Я могу выполнить цикл for следующим образом

 for (auto it = app->mob->m_monsterList.begin(); it != app->mob->m_monsterList.end();   it )
 

но больше я не знаю .. он продолжает говорить, что creaturelist не определен, и это m_monsterList == (*it); также говорит о его неопределенном

Получилось!

Комментарии:

1. В определении класса MobActivity вы должны объявить функцию-член, void RunSpawnCheck(CNtlPacket * pPacket, sVECTOR3 curPos) . b.h Вероятно , вместо этого файл должен быть файлом реализации b.cpp . В любом случае, в верхней части этого файла #include a.h находится файл. Кроме того, если вы еще этого не сделали, поместите a #pragma once в начало a.h файла. Обратите внимание, что все прописные буквы воспринимаются многими как кричащие, а также повышают вероятность столкновения имен с макросами.

2. Было бы легче найти ответ, если бы вы предоставили полные и компилируемые примеры кода, включая ваши includes . И постарайтесь выбросить как можно больше кода.

3. Также было бы неплохо, если бы вы объяснили свой ответ, чтобы люди, путешествующие таким образом в будущем, могли увидеть, как вы это решили.