探讨 C++ 智能指针的功能与应用
发布时间
阅读量:
阅读量
C++ 智能指针的使用
-
- 一、动态指针相关说明
-
- 1、auto_ptr
- 2、shared_ptr
- 3、unique_ptr
- 4、weak_ptr
-
二、测试代码示例
-
- 一、动态指针相关说明
一、动态指针说明
在C++语言中,内存的分配与释放主要依赖于new和delete操作符,然而实践中常因未及时执行delete操作而导致内存泄漏现象。为解决这一问题,C++引入了智能指针模板类来实现对动态内存的自动管理,从而有效防止因人为疏忽而引发的资源泄露。当前C++标准库中共包含四种智能指针类型,分别为auto_ptr、shared_ptr、unique_ptr以及weak_ptr,这四类智能指针所对应的头文件均位于memory之中。
1、auto_ptr特性与应用
是比较老的一个智能指针类了,auto_ptr要求对它所拥有的指针完全占用,所以两个auto_ptr指针不能同时拥有一个一般指针,当前占有一般指针的auto_ptr会剥夺之前智能指针的所有权,如果此时再操作之前的智能指针就会发生错误。auto_ptr智能指针不能作为函数参数按值传递,而应该作为引用传递但又不能预测函数体内是否发生所有权的转移。auto_ptr在进行赋值和复制时会进行一些特殊操作,所以它不能作为C++STL中容器的元素。由于a
全部评论 (0)
还没有任何评论哟~
