您的位置:首页 > 其它

boost学习之-shared_ptr

2012-07-07 19:13 369 查看
用法:

1 shared_ptr是具有引用计数功能的指针,一般用于复制操作很昂贵,或代表的东西被多个东西共享;

引用计数功能分为侵入式和非侵入式,侵入式要求类提供增加或减少计数的函数或数据成员,而非侵入式的没有这方面要求

2 可以在构造时传入删除器,使用自己的删除方法,这一点很有用,因为用途更广泛

3 shared_ptr之间可以复制

4 可以从裸指针,另外一个shared_ptr构造

5 Pimpl用法中可以自动完成复制

6 可以用于标准容器中

用于文件的例子:

{

FILE* f=fopen("test.txt","r");

if (f==0) {

std::cout << "Unable to open file\n";

throw file_exception();

}

boost::shared_ptr<FILE> my_shared_file(f,&fclose);

// 定位文件指针

fseek(&*my_shared_file,42,SEEK_SET);

}

我比较看重文件的这个例子,shared_ptr虽然是被划分为用于管理内存的智能指针,但是用于管理资源更合理,叫share_resource_ptr更合理

最后,虽然该指针功能很强大,但是还是简单使用,以减少代码维护成本;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: