智能指针中,哪种删除器适用性最强?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1129个文字,预计阅读时间需要5分钟。
智能指针包括unique_ptr(独占指针)和shared_ptr(共享指针)。
unique_ptr具有独占性,只能由一个智能指针拥有并管理资源。而shared_ptr则支持多个智能指针共享同一资源。
智能指针有unique_ptr(独占指针),shared_ptr(共享指针)。
unique_ptr独占式指针,只能由一个智能指针拥有管理指针资源。
shared_ptr则是共享式指针,多个指针对象可以共享同一个指针资源。
C++中,智能指针本质上就是类模板,可以通过定义一个自定义的删除器(Deleter)来指定智能指针在析构时释放资源的方式。智能指针中的删除器可以是一个函数对象(函数指针),函数符或者是Lambda表达式。
函数指针:
函数指针是指向函数的指针变量,可以存储一个函数的入口地址,通过调用该指针变量就可以实现对被指向函数的调用。使用函数指针最常用的场景是作为回调函数,也可以用于实现函数指针数组、函数指针作为函数参数等特殊功能。
// 声明一个返回值为int,带两个int类型参数的函数指针
int (*pfunc)(int, int);
在这个例子中,`int (*pfunc)(int, int)`表示定义了一个指向返回值为int类型、带两个int类型参数的函数指针。
本文共计1129个文字,预计阅读时间需要5分钟。
智能指针包括unique_ptr(独占指针)和shared_ptr(共享指针)。
unique_ptr具有独占性,只能由一个智能指针拥有并管理资源。而shared_ptr则支持多个智能指针共享同一资源。
智能指针有unique_ptr(独占指针),shared_ptr(共享指针)。
unique_ptr独占式指针,只能由一个智能指针拥有管理指针资源。
shared_ptr则是共享式指针,多个指针对象可以共享同一个指针资源。
C++中,智能指针本质上就是类模板,可以通过定义一个自定义的删除器(Deleter)来指定智能指针在析构时释放资源的方式。智能指针中的删除器可以是一个函数对象(函数指针),函数符或者是Lambda表达式。
函数指针:
函数指针是指向函数的指针变量,可以存储一个函数的入口地址,通过调用该指针变量就可以实现对被指向函数的调用。使用函数指针最常用的场景是作为回调函数,也可以用于实现函数指针数组、函数指针作为函数参数等特殊功能。
// 声明一个返回值为int,带两个int类型参数的函数指针
int (*pfunc)(int, int);
在这个例子中,`int (*pfunc)(int, int)`表示定义了一个指向返回值为int类型、带两个int类型参数的函数指针。

