Super_cpp 2016-11-23 13:32 采纳率: 100%
浏览 920
已采纳

关于Effective C++的条款2尽量以const,enum,inline替换#define

最近在看这本书,感觉有很多不理解。可能是动手项目比较少,我想问问:书上说
#define ASPECT_RATIO 1.653
因为#define是预处理器处理的,在编译前会进行替换。所以当ASPECT_RATIO出错的时候,编译报告的是1.653的错误,因为ASPECT_RATIO是没有进去符号表的,在进行排错会浪费时间。因此用const double AspectRatio=1.653替换掉那个宏。而且这样内存里只会存在一个这样的变量,比较节省内存。
在平时使用VS的时候,我遇到的情况,除了指针问题可能难发现,其他情况报错编译器不都会直接定义到哪一行出了错么,这样一看便知道是什么问题。。图片说明可能楼主这方面经验比较少,麻烦知道的解释下。
顺便问下,条款三的尽量使用const里面,把一个函数的反回值设为了const,这种设置一般用在运算符设置里面吧。是么?谢谢解答

  • 写回答

1条回答 默认 最新

  • threenewbee 2016-11-23 15:45
    关注

    一个函数应该“严以律己,宽以待人”,严以律己就是尽可能少地修改传入的参数或者全局变量,尽可能做好自身参数和结果的检查。宽以待人是说,要对外部条件尽可能宽容,尽量不要假设外部程序的状态。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的