2011-03-25 236 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