Effective C++
文章平均质量分 80
提升编程技巧
贝勒里恩
用生命写代码,用灵魂做界面!
展开
-
条款04:确定对象被使用前已先被初始化
读取未初始化的值会导致不明确的行为。在某些平台上,仅仅只是读取未初始化的值,就可以能让你的程序终止运行。更可能的情况时读入一些“半随机”bit,污染了正在进行读取动作的那个对象,最终导致不可预测的程序行为,以及许多令人不愉快的调试过程。 最佳的处理办法:永远在使用对象之前先将它初始化 一、内置类型初始化 对于无任何成员的内置类型,必须手工完成此事,例如: int x = 0; const char* text = "Hello World"; double d; std::cin >>原创 2021-07-19 18:39:04 · 211 阅读 · 0 评论 -
条款03:尽可能使用const
const作用:const允许你指定一个语义约束(也就是指定一个“不该被改动的对象”),而编译器会强制实施这项约束,它允许你告诉编译器和其它程序员其值应保持不变。 1、常指针、指针常量 常指针:const pointer, non-const data(不允许修改指针指向,允许修改指针所指向的数据) 指针常量:non-const pointer, const data(允许修改指针指向,不允许修改指针所指向的数据) char greeting[] = "Hello"; char* p = greeti原创 2021-07-14 11:38:14 · 139 阅读 · 0 评论 -
条款02:尽量以const,enum,inline替换#define
一、使用const 存在问题1: #define PI 3.141592654 记号名称PI也许从未被编译器看见,也许在编译器开始处理源码之前它就被预处理器替换了。 于是记号名称PI有可能没有进入记号表内,当你运用次常量但获得一个编译错误信息是,这个错误信息也许会提示3.141592654,而不是PI,对于不熟悉这个宏定义的人来说,会因为对它来自何处毫无概念而增加排错的时间; 解决方案:使用常量(const)替换宏(#define) const double PI = 3.141592654 作为一个原创 2021-07-12 18:51:07 · 212 阅读 · 0 评论