本文共 952 字,大约阅读时间需要 3 分钟。
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变量(指针、数组)被创建之后应当及时把它们初始化,以防止 把未被初始化的变量当成右值使用。转载地址:http://fwklf.baihongyu.com/