高质量C/C++编程指南读书笔记(2)

7.2.1用malloc或者new申请内存之后,应该立即检查指针值是否为
NULL。防止使用指针值为NULL的内存。
7.2.3动态内存的申请与释放必须配对,防止内存泄漏。
7.2.4用free或delete释放了内存之后,立即将指针设置为NULL,防止
产生“野指针”。

7.7野指针的成因:
(1)指针变量没有被初始化。
(2)指针p被free或者delete之后,没有置为NULL,让人误以为p是个
合法的指针。

7.9内存耗尽问题:
(1)判断指针是否为NULL,如果是则马上用return语句终止本函数。
(2)判断指针是否为NULL,如果是则马上用exit(1)终止整个程序
的运行。
(3)为new和malloc设置异常处理函数。

7.10free的用法:
如果p是NULL指针,那么free对p无论操作多少次都不会出问题。如果p
不是NULL指针,那么free对p连续操作两次就会导致程序运行错误。

8.5一下情况不宜使用内联:
(1)如果函数体内的代码比较长,使用内联将导致内存消耗代价较高。
(2)如果函数体内出现循环,那么执行函数体内代码的时间要比函数
调用的开销大。
不要随便地将构造函数和西沟函数的定义体放在类声明中。

9.0
C++编译器自动产生四个缺省的函数,如:
A(void);
A(const A &a);
~A(void);
A &operator=(const A &a);
9.1 类的const常量只能在初始化表里被初始化。
9.2 基类与派生类的析构函数应该为虚继承。

11.1
对于非内部数据类型的输入参数,应该将“值传递”的方式改为“const
引用传递”,目的是提高效率。
对于内部数据类型的输入参数,不要将“值传递”的方式改为
“const引用传递”。否则既达不到提高效率的目的,又降低了函数的可
理解性。
11.2函数返回值采用“引用传递”的场合并不多,这种方式一般只出现
在类的赋值函数中,目的是为了实现链式表达。
11.3const成员函数
任何不会修改数据成员的函数都应该声明为const类型。

11.4先优化数据结构和算法,再优化执行代码。
11.5变量(指针、数组)被创建之后应当及时把它们初始化,以防止
把未被初始化的变量当成右值使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值