Item 13:Use objects to manage resources
假设我们使用一个用来塑膜投资行为的程序库,其中各式各样的投资类型继承自一个root class:
class Investment { ... }; //“投资类型”继承体系中的root class
进一步假设,这个程序系通过一个工厂函数(工厂函数会“返回一个base class指针,指向新生成...
分类:
编程语言 时间:
2014-08-04 18:06:17
阅读次数:
212
(一)
先看下面这段看起来貌似很不错的代码:
class Investment {...};
Investment* createInevstment(); //factory函数
void f() {
Investment* pInv = createInvestment();
...;
delete pInv; //释放pInv所指的对象
}
但是存在不安全。因...
分类:
编程语言 时间:
2014-06-10 17:35:10
阅读次数:
263
资源:动态分配的内存、文件描述器、互斥锁、图形界面中的字型与笔刷、数据库连接以及网络sockets等,无论哪一种资源,重要的是,当你不再使用它时,必须将它还给系统。条款13:以对象管理资源当我们向系统申请资源后,一定要记得释放,不然就容易发生内存泄漏。但是意识到这样一件事并不是很容易,比如我们是通过...
分类:
编程语言 时间:
2014-05-26 23:23:05
阅读次数:
328
资源:动态分配的内存、文件描述器、互斥锁、图形界面中的字型与笔刷、数据库连接以及网络sockets等,无论哪一种资源,重要的是,当你不再使用它时,必须将它还给系统。
条款13:以对象管理资源
当我们向系统申请资源后,一定要记得释放,不然就容易发生内存泄漏。但是意识到这样一件事并不是很容易,比如我们是通过一个函数来动态分配内存并返回一个指针。
Investment* ceateInve...
分类:
编程语言 时间:
2014-05-22 17:28:27
阅读次数:
340