摘要: 内存管理程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本章的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。7.1内存分配方式内存分配方式有三种:(1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。(2)在栈上创建。在执行函数... 阅读全文
posted @ 2009-08-07 22:19 JonasZhu 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 在函数体的“出口处”,对return语句的正确性和效率进行检查。如果函数有返回值,那么函数的“出口处”是return语句。我们不要轻视return语句。如果return语句写得不好,函数要么出错,要么效率低下。注意事项如下:(1)return语句不可返回指向“栈内存”的“指针”或者“引用&#... 阅读全文
posted @ 2009-08-07 21:53 JonasZhu 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 如果函数的返回值是一个对象,有些场合用“引用传递”替换“值传递”可以提高效率。而有些场合只能用“值传递”而不能用“引用传递”,否则会出错。例如:classString{⋯//赋值函数String&operate=(constString&other);//相加函数,如果没有f... 阅读全文
posted @ 2009-08-07 21:35 JonasZhu 阅读(763) 评论(0) 推荐(0) 编辑
摘要: 常量是一种标识符,它的值在运行期间恒定不变。C 语言用 #define 来定义常量(称为宏常量)。C++ 语言除了 #define 外还可以用const 来定义常量(称为const 常量)。为什么需要常量如果不使用常量,直接在程序中填写数字或字符串,将会有什么麻烦?(1) 程序的可读性(可理解性)变差。程序员自己会忘记那些数字或字符串是什么意思,用户则更加不知它们从何处来、表示什么。(2) 在程序... 阅读全文
posted @ 2009-08-07 21:13 JonasZhu 阅读(366) 评论(0) 推荐(0) 编辑