#includeing文件,变量名现在输入错误C ++

问题描述

| 对不起,标题很奇怪,还是不太确定该怎么称呼,这是我的问题: 我收到一条错误消息:   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
};
在单独的文件中将“ 4”类定义
template <typename K,typename V>
class myHashMap {
    //
};
#include \"hashmap.hpp\"
此类的头文件包含在pserver.h中。 那么,为什么编译器不会将ѭ6识别为类型呢?     

解决方法

显然,编译器不知道什么是“ 0”。您或者忘记了将“ 0”声明包含到“ 9”中(即使您声称确实包含了),或者您的头文件遇到了循环包含问题。另外,是否可以将“ 0”声明为某个命名空间的成员? 看起来问题与ѭ11无关,这与其他张贴者的建议相反。尽管
std::string
可能存在问题,但您引用的错误消息是由编译器未看到
myHashMap
的声明引起的。     ,您要么: 忘了
#include <string>
需要使用
std::string
而不是
string
需要ѭ11的使用声明 需要a18的using指令 没有将包含您的“ 0”模板的标头正确地包含到pserver.h中 或以上的某种组合。