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毫秒