正确使用C++(1)注意const的使用

C++编程最佳实践
本文探讨了C++编程中的一些最佳实践,强调了正确使用const的重要性,并提供了关于如何避免潜在错误的具体建议。

  本来题目想叫 批判C++,一想我哪有这资格,其实我的观点是,不要误用她,她很复杂,我们就限制一些用法,这样易于团队的管理,它是一个C到C++之间的集合。另外一个方面,新人刚进团队可以减少培训的负担,我们的目的不是研究最复杂的C++技术,而是做一款‘牛逼’的产品。做为程序员一定要摆正这个心态。

  什么是‘牛逼’?你可能联想到一堆的词,高效、稳定、可维护等等,赶快打消这些想法,你只要写出‘正确’的代码,就已经很伟大了。要记住,永远只有可能人犯错误,机器是不会犯错误的。在程序员生涯中可能会遇到这种情况,一个bug很难重现,看起来好像是随机的,不要怀疑是计算机出了问题,一定概率会出错,只有可能是某个人在某个地方犯了错。

  好了,以后会分很多小标题写这些内容,这次就写 注意const的使用

(1)整型常量
  这是使用得最多的一类常量,包括错误码、网络协议号以及各种系统定义的标识号,可以认为整个计算机系统都是在玩这些数字,而这些常量的名字就给了它们丰富的含义。我们使用#define和enum定义的最多,尽量不要使用const int。因为const int实际上是在定义有const修饰的变量,它们不是在编译期确定的,也就是说它们会经过构造的过程,如果你定义为全局的,那它们的构造顺序就很重要了,可能在你的某个类的构造中使用了这些值,而那时刚好它们还未被构造。为了降低复杂度,这类常量定义不要使用const。顺便说一下,不要在代码中使用‘神仙数’,只有少数几个比较特殊,0是最多的,但指针就不要用0,虽然C++是完全认可的,指针要使用NULL,它表示是某个指针的值,如果要出现一个特殊的值在代码中,必须使用它的常量名字代替。

(2)字符串
  使用#define的多,这是它最强大的地方,拼字符串。有一种情况要特别注意,你如果定义的这种形式会出现很多很多次,比如一个错误检查的宏,里面拼一个字符串,使用_LINE_和_FUNCTION_等宏,那在像WORD这样巨大的项目中可能会把进程的静态常量区占满。当然,我相信我还没有能做出如此大的项目。。那么就放心使用吧。你要说万一这种情况出现要怎么解决,很简单封一个外壳函数就能解决。

(3)各种奇特的常量
  别想了,没有这种常量。const CMyClass g_WTF;要这么干,得要有充分理由,至少要发一封邮件给全组人员讨论,呵呵。另外字符串常量也尽量限制,有些值不需要在代码中定义,可以在脚本中配置文件中写,甚至放在数据库中。

  const出现在函数参数中很常见,它表示这个值是传入。const修饰类成员函数,表示这个函数不修改这个类的this对象。至于const_cast<>,不使用,除非你有充分理由,同上。

(欢迎拍砖)

转载于:https://www.cnblogs.com/codeforfun/archive/2009/11/01/1594044.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值