2012-10-19 50 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

這個答案讓我調試,我看到的下一個問題。我希望有一種方法可以接受多個答案(或者我至少有信譽投票!) –

相關問題