Chinaunix首页 | 论坛 | 博客
  • 博客访问: 96723
  • 博文数量: 17
  • 博客积分: 366
  • 博客等级: 一等列兵
  • 技术积分: 235
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-16 16:31
文章分类

全部博文(17)

文章存档

2011年(17)

我的朋友

分类: C/C++

2011-08-25 14:08:49

代码大致可以简化成下面的形式:

selectionChangeSlot(const char* name,bool bAdd)

{

 .......

   std::string name = name;

 .......

   int id = getIDByName(name);

   if(bAdd){

     doSomeThingBy(id);

   }else{

     doOtherThingBy(id);

   }

}

    恐怕所有人都难以预料到自己会犯下这种错误,但是今天在我这确实出现了。惭愧之余,反思出现的原因,

    原本可能是为了调试方便,或者后续利用std::string的一些方便特性,做了这样一个似乎有道理的变换,但是错就错在命名的惯性使然,神使鬼差又给std::string 命了个同样的名称。 但是这样一来,编译却能够通过,只是无论怎么传值,执行操作的name都是空的。

     记录这次错误鞭策自己,以后写代码时更加小心,避免这些因为简单、习惯、大意,造成的错误。

阅读(1626) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~