【发布时间】:2011-04-14 23:51:17
【问题描述】:
对不起,奇怪的标题,不太清楚该叫什么,无论如何,这是我的问题:
我收到一条错误消息:
pserver.h:27: 错误:ISO C++ 禁止声明没有类型的“
myHashMap”
pserver.h:27: 错误:在“<”令牌之前需要“;”
在 pserver.h 中引用这一行:
template <typename K, typename V>
class myPserver {
public:
//
private:
myHashMap<string, int> theMap; // line 27
};
myHashMap<K, V> 类在单独的文件中定义为
template <typename K, typename V>
class myHashMap {
//
};
#include "hashmap.hpp"
该类的头文件包含在 pserver.h 中。
那么为什么编译器不能将myHashMap<string, int> 识别为一种类型呢?
【问题讨论】:
-
更多代码! hashmap.hpp 中有什么?
-
@Bob Finchemer hashmap.hpp 定义了 myHashMap 类
-
这毫无意义。您显示
myHashMap在某个文件中定义,然后#includes hashmap.hpp,那么myHashMap如何在 hashmap.hpp 中再次定义? -
@ildjarn 他的模板方法是在
hpp中定义的,而不是在类中。