C++模板类的问题 map<GUIDType,T*>::iterator 有错,应该如何改?
每天早晨一问:#include<map>#include"IActor.h"#include"GlobalVariable.h"usingnamespacestd;tem...
每天早晨一问:
#include <map>
#include "IActor.h"
#include "GlobalVariable.h"using namespace std;
template< class T>
class CTemplateManager
{
public:
CTemplateManager(void);
virtual ~CTemplateManager(void);
private:
map<GUIDType,T*> _actors;
map<GUIDType,T*>::iterator _itrActors;
public:
void Add(T* pActor);
T* LookupById(GUIDType id);
void Remove(GUIDType id);
void Restore();
void Store();
};
请问各位大侠,
编译报错:
templatemanager.h(16): warning C4346: “std::map<GUIDType,_Kty*>::iterator” : 依赖名称不是类型
templatemanager.h(16): error C2146: 语法错误 : 缺少“;”(在标识符“_itrActors”的前面)
templatemanager.h(16): error C2501: “CTemplateManager<T>::_itrActors” : 缺少存储类或类型说明符是什么缘故.
是 map<GUIDType,T*>::iterator _itrActors;有错,那么应该怎么改 展开
#include <map>
#include "IActor.h"
#include "GlobalVariable.h"using namespace std;
template< class T>
class CTemplateManager
{
public:
CTemplateManager(void);
virtual ~CTemplateManager(void);
private:
map<GUIDType,T*> _actors;
map<GUIDType,T*>::iterator _itrActors;
public:
void Add(T* pActor);
T* LookupById(GUIDType id);
void Remove(GUIDType id);
void Restore();
void Store();
};
请问各位大侠,
编译报错:
templatemanager.h(16): warning C4346: “std::map<GUIDType,_Kty*>::iterator” : 依赖名称不是类型
templatemanager.h(16): error C2146: 语法错误 : 缺少“;”(在标识符“_itrActors”的前面)
templatemanager.h(16): error C2501: “CTemplateManager<T>::_itrActors” : 缺少存储类或类型说明符是什么缘故.
是 map<GUIDType,T*>::iterator _itrActors;有错,那么应该怎么改 展开
1个回答
2013-06-08
展开全部
要这么些typename map<GUIDType,T*>::iterator _itrActors;
加上typename 因为编译器不清楚map的iterator是否是个类型 需要通过typename告诉编译器 这是个类型
加上typename 因为编译器不清楚map的iterator是否是个类型 需要通过typename告诉编译器 这是个类型
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询