好学IT学院:IT信息技术分享交流平台
标签:C++  来源:PConline  作者:宋宝华  发布时间:2009-05-17  ★★★加入收藏〗〖手机版
精华推荐:C++编程新手错误语录
摘要:1.引言还记得当年学数学、英语都有个窍门,那就是搞个错题集。经常复习一下这个错题集,就可以避免下次犯同样的错误。而几乎所有的程序员都是从犯错误开始的,我们也很有必要总结一下编程新手的常见错误,本文的目的在于此。文中所列出的都是笔者在项目开发……

(6)“switch和if …else…可随意替换”

switch语句和一堆if…else…的组合虽然功能上完全一样,但是给读者的感受完全不一样。if…else…的感觉是进行条件判断,对特例进行特别处理,在逻辑上是“特殊与一般”的关系,而switch给人的感觉是多个条件的关系是并列的,事物之间不存在特殊与一般的关系,完全“对等”。
譬如:

//分别对1-10的数字进行不同的处理,用switch
switch(num)
{
case 1:

case 2:

}
//对1-10之间的数字进行特殊处理,用if
if(num < 10 && num > 1)
{

}
else
{

}

许多时候,虽然不同的代码可实现完全相同的功能,但是给读者的感觉是完全不同的。譬如无条件循环:

while(1)
{
}

有的程序员这样写:

for(;;)
{
}

这个语法没有确切表达代码的含义,我们从for(;;)看不出什么,只有弄明白for(;;)在C/C++语言中意味着无条件循环才明白其意。而不懂C/C++语言的读者看到while(1)也可猜到这是一个无条件循环。

(7)“免得麻烦,把类里面的成员函数都搞成public算了”

许多人编C++程序的时候,都碰到这样的情况,先前把某个成员函数定义成类的private/protected函数,后来发现又要从外面调用这个函数,就轻易地将成员函数改为public类型的。甚至许多程序员为了避免访问的麻烦,干脆把自己添加的成员函数和成员变量都定义成public类型。

殊不知,这是一种规划的失败。在类的设计阶段,我们就要很清晰地知道,这个类的成员函数中哪些是这个类的接口,哪些属于这个类内部的成员函数和变量。一般的准则是接口(public成员)应在满足需求的前提下尽可能简单!

所以不要轻易地将private/protected成员改为public成员,真正的工作应该在规划阶段完成。

3.结束语

所有的程序员都要经历一个从糊涂到清晰的过程,文中的错误如果你也犯了,切勿自惭。

更多的错误语录,希望能在后续文章中陆续推出。

  • 好学触屏公众号虎力全开、杨帆起航!
  • 好学考试H5触屏版开放内测