分享
 
 
 

《高质量C++编程指南》读书笔记(二)

王朝vc·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

内存管理:

用malloc 或new 申请内存之后,应该立即检查指针值是否为NULL。防止使用指针值为NULL 的内存。

不要忘记为数组和动态内存赋初值。防止将未被初始化的内存作为右值使用。

免数组或指针的下标越界,特别要当心发生“多1”或者“少1”操作。

动态内存的申请与释放必须配对,防止内存泄漏。

用free 或delete 释放了内存之后,立即将指针设置为NULL,防止产生“野指针”。

C++函数的高级特性:

参数缺省值只能出现在函数的声明中,而不能出现在定义体中。

如果函数有多个参数,参数只能从后向前挨个儿缺省,否则将导致函数调用语句怪模怪样。

类的构造函数、析构函数与赋值函数:

不少难以察觉的程序错误是由于变量没有被正确初始化或清除造成的,而初始化和清除工作很容易被人遗忘。

构造函数初始化表的使用规则:

如果类存在继承关系,派生类必须在其初始化表里调用基类的构造函数。

类的const 常量只能在初始化表里被初始化,因为它不能在函数体内用赋值的方式来初始化。

类的数据成员的初始化可以采用初始化表或函数体内赋值两种方式,这两种方式的效率不完全相同。

基类的构造函数、析构函数、赋值函数都不能被派生类继承。如果类之间存在继承关系,在编写上述基本函数时应注意以下事项:

派生类的构造函数应在其初始化表里调用基类的构造函数。

基类与派生类的析构函数应该为虚(即加virtual 关键字)。

在编写派生类的赋值函数时,注意不要忘记对基类的数据成员重新赋值。

类的继承与组合:

如果类A 和类B 毫不相关,不可以为了使B 的功能更多些而让B继承A 的功能和属性。不要觉得“白吃白不吃”,让一个好端端的健壮青年无缘无故地吃人参补身体。

若在逻辑上B 是A 的“一种”(a kind of ),则允许B 继承A 的功能和属性。

若在逻辑上A 是B 的“一部分”(a part of),则不允许B 从A 派生,而是要用A 和其它东西组合出B。

其它编程经验:

不要一味地追求程序的效率,应当在满足正确性、可靠性、健壮性、可读性等质量因素的前提下,设法提高程序的效率。

以提高程序的全局效率为主,提高局部效率为辅。

在优化程序的效率时,应当先找出限制效率的“瓶颈”,不要在无关紧要之处优化。

先优化数据结构和算法,再优化执行代码。

有时候时间效率和空间效率可能对立,此时应当分析那个更重要,作出适当的折衷。例如多花费一些内存来提高性能。

不要追求紧凑的代码,因为紧凑的代码并不能产生高效的机器码。

一些有益的建议:

当心那些视觉上不易分辨的操作符发生书写错误。

我们经常会把“==”误写成“=”,象“||”、“&&”、“<=”、“>=”这类符号也很容易发生“丢1”失误。然而编译器却不一定能自动指出这类错误。

变量(指针、数组)被创建之后应当及时把它们初始化,以防止把未被初始化的变量当成右值使用。

当心变量的初值、缺省值错误,或者精度不够。

当心数据类型转换发生错误。尽量使用显式的数据类型转换(让人们知道发生了什么事),避免让编译器轻悄悄地进行隐式的数据类型转换。

当心变量发生上溢或下溢,数组的下标越界。

当心忘记编写错误处理程序,当心错误处理程序本身有误。

当心文件I/O 有错误。

避免编写技巧性很高代码。

不要设计面面俱到、非常灵活的数据结构。

如果原有的代码质量比较好,尽量复用它。但是不要修补很差劲的代码,应当重新编写。

尽量使用标准库函数,不要“发明”已经存在的库函数。

尽量不要使用与具体硬件或软件环境关系密切的变量。

把编译器的选择项设置为最严格状态。

如果可能的话,使用PC-Lint、LogiScope 等工具进行代码审查。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有