天天看点

C++ 以对象管理资源

C++中使用到的资源可能很多,并且一些资源获取后还必须释放归还给系统, 列举几个如:

1. 打开的文件句柄

2. 数据库连接

3. 互斥锁

4. 动态分配new出来的内存

5. 网络socket连接

 C++中有智能指针,比如shared_ptr,可以自动释放指针指向的资源。

这里不详细说shared_ptr用法。

而是自己实现一个以对象管理资源的例子。

例子:线程互斥锁的加锁、解锁。

1. 利用对象到构造函数,析构函数来自动完成加锁、解锁。将编译器默认提供的无用函数禁用掉。

2. 线程执行函数

3. 整体代码

C++ 以对象管理资源
C++ 以对象管理资源

View Code

c++智能指针可以参考网上的例子:

http://www.cnblogs.com/lanxuezaipiao/p/4132096.html

继续阅读