c2011专题

error C2011: xxxx类型重定义的解决方法

在开发中经常会遇到error C2011: "xxxx"类型重定义的报错,一般有两种可能: 1.检查是否有变量名相同的情况 2.如果出现在.h头文件中,可能是因为没有加预编译语句,导致重复编译,试着在出错的.h文件的第一行加下两句: #ifndef XXX_H#define XXX_H 在结尾加下一句: #endif // XXX_HXXX_H一般就是该头文件的名称,不重复

error C2079 使用未定义的class 和 error C2011 ‘class’类型重定义

error C2079 使用未定义的class 问题原因:在于.h文件引用的顺序不对,在系统编译的时候是由上至下编译头文件的。 解决方法:(1) 添加头文件的时候基类文件在上,基于基类的子类头文件在其下,先编译基类再编译子类;                     (2)若b.h中用到了a.h中的内容,c.h需要用到b.h和a.h的内容,则先添加a.h再添加b.h。 error C

error C2011: “sockaddr”:“struct”类型重定义错误 ----解决办法

很多程序比如MFC程序它本身就不是直接包含windows.h,你找不到它的包含位置。也报这个错误。      windows.h和winsock2.h存在有类型重定义,往往体现在VC程序中包含winsock2.h时出现编译错误: error C2011: “sockaddr_in”:“struct”类型重定义   网友提出的解决办法是将 #include<windows.h>之前 #i