C_and_CPP 版 (精华区)
发信人: seaboy (壳儿), 信区: C_and_CPP
标 题: 第二章 内存管理
发信站: 哈工大紫丁香 (2003年11月07日11:48:19 星期五), 站内信件
第二章 内存管理
c++中涉及到的内存的管理问题可以归结为两方面:正确地得到它和有效地使用它。好的程
序员会理解这两个问题为什么要以这样的顺序列出。因为执行得再快、体积再小的程序如
果它不按你所想象地那样去执行,那也一点用处都没有。“正确地得到”的意思是正确地
调用内存分配和释放程序;而“有效地使用”是指写特定版本的内存分配和释放程序。这
里,“正确地得到”显得更重要一些。
然而说到正确性,c++其实从c继承了一个很严重的头疼病,那就是内存泄露隐患。虚拟内
存是个很好的发明,但虚拟内存也是有限的,并不是每个人都可以最先抢到它。
在c中,只要用malloc分配的内存没有用free返回,就会产生内存泄露。在c++中,肇事者
的名字换成了new和delete,但情况基本上是一样的。当然,因为有了析构函数的出现,情
况稍有改善,因为析构函数为所有将被摧毁的对象提供了一个方便的调用delete的场所。
但这同时又带来了更多的烦恼,因为new和delete是隐式地调用构造函数和析构函数的。而
且,因为可以在类内和类外自定义new和delete操作符,这又带来了复杂性,增加了出错的
机会。下面的条款(还有条款m8)将告诉你如何避免产生那些普遍发生的问题。
--
才知道
原来
自己需要的是
100万
份勇气。。。
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.239.104]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:1.955毫秒