C++中使用到的资源可能很多,并且一些资源获取后还必须释放归还给系统, 列举几个如:
1. 打开的文件句柄
2. 数据库连接
3. 互斥锁
4. 动态分配new出来的内存
5. 网络socket连接
C++中有智能指针,比如shared_ptr,可以自动释放指针指向的资源。
这里不详细说shared_ptr用法。
而是自己实现一个以对象管理资源的例子。
例子:线程互斥锁的加锁、解锁。
1. 利用对象到构造函数,析构函数来自动完成加锁、解锁。将编译器默认提供的无用函数禁用掉。
2. 线程执行函数
3. 整体代码
View Code
c++智能指针可以参考网上的例子:
http://www.cnblogs.com/lanxuezaipiao/p/4132096.html