2011-03-25 235 views
2

我收到以下錯誤,但我不明白什麼是錯的:C++編譯器錯誤C2440

錯誤7錯誤C2440:初始化': 不能從 轉換「的std ::對< _Ty1 ,_Ty2> *」來 '的std ::對< _Ty1,_Ty2> *'
C:\文件 和設置\ VAY \我的文檔\ Visual 工作室 2010 \項目\襪子\的ChatServer \ server.h 107

這是相關代碼:

std::pair<std::string, ChatClient&> *p 
    = new std::pair<std::string, ChatClient>(username, *sock); 
+0

這是行:標準::對<的std :: string,ChatClient&> * p值=新的std ::對<的std :: string,ChatClient>(用戶名, *襪子); – Vijay 2011-03-25 10:28:33

回答

4

你的兩對不同的。

卸下&

std::pair<std::string, ChatClient> *p = new std::pair<std::string, ChatClient>(...); 
+0

std :: pair * p = new std :: pair (username,* sock); – Vijay 2011-03-25 10:29:45

+2

@Vijay:是的,正如Erik指出的那樣,這條線是錯誤的,在左邊你寫的是「ChatClient」,右邊是「ChatClient」,它們是不同的類型。 – 2011-03-25 10:43:39