2012-10-19 42 views
0

我知道有十亿类似的话题,但没有我在任何一个看到的建议,帮助我解决了这个预期的“”或“...” ...这是保存为一个文件header.h错误:前‘>’令牌

#include <errno.h> 
#include <stdio.h> 
#include <string.h> 
#include <sys/types.h> 
#include <sys/socket.h> 
#include <map> 

using namespace std; 
class Handler { 
public: 
    Handler(); 
    ~Handler(); 

    bool handle(int client); 
    void giveMaps(map<string, string> host, map<string,string> media>); 

private: 
    map<string, string> hosts; 
    map<string, string> mediaLookup; 
    char buf_[1600]; 
    char* getCurrentDate(); 

}; 

我的错误是“handler.h中:18:错误:预期‘’或‘...’前‘>’令牌”,其中第18行原来是“void giveMaps(地图主持人,地图媒体>);”

我已经试过宣布两个映射为const,与地图内的所有串一起,但到目前为止,我已经没有什么。我敢肯定它是简单的东西,我只需要另一双眼睛看看吧......

+2

什么是'媒体'在那里的额外一个? – chris

+0

放置“using namespace std;”在头文件中是非常非常糟糕的做法,这将使任何必须使用头文件的人永远诅咒你。如果你想在.cpp文件中使用它,请继续,虽然这不是一个很好的做法。把它在你的头文件,在另一方面,这意味着任何人,包括你的头文件将有带入全局命名空间std命名空间的一切,他们是否愿意与否(他们可能没有)。另外,如果Handler将被用作基类,一定要让析构函数为虚拟。 – George

回答

3

末额外>有一个额外的>。请删除(其倒数第三的说法media后):

更新语句应如下:

void giveMaps(map<string, string> host, map<string,string> media); 
+0

我知道这很简单,谢谢! (现在问这个问题感到愚蠢,但是哦,那就是生活......) –

+0

这很好。有时你需要另一双眼睛来看待琐碎的事情。请不要忘记接受答案。 –

3

有在

void giveMaps(map<string, string> host, map<string,string> media>); 
1

除了考虑到其他意见,以下是不正确的:

#include <string.h> 

您应该删除.h,以便您拥有:

#include <string> 
+0

虽然他当然应该包括'string','string.h'是** C **字符串处理和** C++ **相当于将'cstring'头。 –

+1

string.h中应包括在C++作为的#include vz0

+0

这个答案让我调试,我看到的下一个问题。我希望有一种方法可以接受多个答案(或者我至少有信誉投票!) –

相关问题