error,Debug,and so on

本文总结了 C++ 开发过程中常见的错误及其解决办法,包括构造函数返回类型错误、类定义缺少分号、重复包含头文件等问题,并介绍了如何正确使用 STL 容器避免警告。

error C2533 构造函数不能有返回类型

类定义时,少了一个分号!!!!!!!

 

 

CMap m_cMap; 这种做法是不行的,对于KEY的类型只能是简单数据类型如int, LPCTSTR, LONG...不能是一个C++对象。如果要用字符串作为KEY的映射不如试一试CMapStringToObj(应该没拼写)

 

 

error C2011:

这个错误是因为你多次包含了(在多个文件中)定义point这个class的.h文件。
解决方式很简单,就是使用ifndef define 这个东西包住你定义的class。 
 
 
当前不会命中断点:
      一、删除引用项目的debug

        二、配置管理器中把所有项目的“生成”打勾、“配置”全部选成“debug“,切忌release

        三、配置管理器中“活动解决方案配置”、新建一个方案

        四、将引用目录统一设到某个目录,防止没有引用到最新的(源码与dll版本不匹配)

        五、工具、选项、调试、常规中的“要求源文件和原始版本完全匹配”的勾去掉

        五种办法都用过了。还是没有用。

        最后偶然想到,出现这个问题的原因基本上有两个:

        一、要调试的dll不在调试进程的进程空间,调不到

        二、源代码使用的dll与调试的源代码的版本不对,自然调试不到

 

 

用C++ vector string出现一堆warning

搜索问题和解决办法:

在include stl 之前disable掉。 #pragma warning(disable:4786) msdn 里面说得很清楚,转换成内部名后,太长,debug下面将没办法察看(如watch): 'identifier' : identifier was truncated to 'number' characters in the debug information

 

 

自定义的结构体做map的key:

 

 

 

map的key要求是copyable和comparable,

 

typedef struct stabc {    int a;  

int b;

 int c;   bool operator < (const struct stabc stABCComp )const  {   return  (a!= stABCComp .a) ? (a< stABCComp .a) :    (b!= stABCComp .b) ? (b< stABCComp .b) :    (c< stABCComp .c);      } }StABC;

 

 

 

inline bool operator< (const T& Left, const T& Right) {   return      (Left.a != Right.a) ? (Left.a < Right.a) :     (Left.b != Right.b) ? (Left.b < Right.b) :                           (Left.c < Right.c); }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值