文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>effective C++(第三版)读书笔记一——条款二:尽量以const,enum,inline替换#define

effective C++(第三版)读书笔记一——条款二:尽量以const,enum,inline替换#define

时间:2011-05-24  来源:萧牧

书中“宁可以编译器替换预处理”算是另一种提法,不过这个应该是概括性的说法吧

主要事项注意如下:

1用const double AspectRatio=1.653;代替#define ASPECT_RATIO  1.653

  原因是预编译时define会被简单的替换,这样在编译时丢掉了ASPECT_RATIO,如果不正

  当使用了ASPECT_RATIO编译时提示出错的可能只是1.653,这时候查找起来麻烦多了

 另一个原因是定义成变量后编译时只有一份拷贝,节约了代码

当然这个条款也有特例

1)当出现指针的时候要这样const char* const autherName = "Scott Mayers";

即指针和其内容都不可变,当然如果是字符串string会比上面的char更合适

const std::string autherName("Scott Mayers");

2)注意class的专属常量,通过使得常量成为class的一个member将常量作用域限制在class内

通过使用static使常量只有一份拷贝

class GamePlayer(){

private:

static const int NumTurns = 5;

int scores[NumerTurns];

……

};

今天困了不早了,明日再写

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载