• 首页
  • 作文
  • 散文
  • 故事
  • 古诗
  • 短文
  • 语录
  • 写作
  • 诗歌
  • 百科
  • 知识
  • 首页
  • 作文
  • 散文
  • 故事
  • 古诗
  • 短文
  • 语录
  • 写作
  • 诗歌
  • 百科
  • 知识
首页 » 注意事项 » 智能指针(C++智能指针的几种用法)

智能指针(C++智能指针的几种用法)

分类:注意事项 日期:2022-08-29 07:28 浏览:11 次

1.C++智能指针的几种用法

一、auto_ptr模板

auto_ptr与shared_ptr、unique_ptr都定义了类似指针的对象,可以将new到的地址赋给这一对象,当智能指针过期时,析构函数会调用delete函数,对象将被销毁,由此内存可以自动被释放。

二、shared_ptr模板

先看代码:

auto_ptr p1 (new string("hello world!");

auto_ptr p2;

p2 = p1;

在以上代码中,p1与p2指向同一对象,常规指针在释放内存时,系统会尝试删除同一对象两次。在auto_ptr中,对象的所有权会归于p2,p1将会变为野指针。shared_ptr则允许多个指针指向同一个对象,每多一个指针指向,计数器就会+1,同样在释放的时候,当数值减为0的时候即最后一个指针过期的时候才会调用delete函数。

三、unique_ptr模板

同样为了避免多个指针指向,unique_ptr严格了所有权的概念,即我的就我的,不允许他人指向(如代码段二中,采用unique_ptr编辑将会报错,而原代码会编译通过但可能造成崩溃)。

四、总结

需要多个指针指向一个对象时可使用shared_ptr,如指针数组。不需要多个指针指向一个对象可使用uniq_ptr,uniqu_ptr比auto_ptr更加安全(编译报错远比程序崩溃好得多)。

智能指针注意事项,智能马桶注意事项,使用指针的注意事项

2.ATL的智能指针CComQIPtr 在MFC中使用要注意什么

if(failed(l_hr))

{

return l_hr;

}

//dosomething of itestcomptr

couninitialize();

}

初看这段代码是没有任何问题的,但是运行还是会崩溃.如果我们在

coinitialize(null);下行加上"{"与couninitialize();上行加上"}"就不会出错了.为什么呢?

原因在于原来的coinitialize所开的套间在couninitialize();后已经被关闭.

而智能指针的组件对象却并没有释放,直到程序调用ccomptr<itestcomptr&gt;的析构函数时才调用

itestcomptr的release方法,但是这时候,套间已经不在了,所以导致了程序的崩溃.在组件

的生命周期很短的时候,智能指针的使用基本是无害的,并且有时是非常方便的.

所以在使用智能指针时有以下建议:

1. 当对象的生命周期很长要小心使用.

2. 当对象的生命周期不确定时不要使用.

3. 千万不要使用全局的智能指针.

指针,注意事项,智能

3.ATL的智能指针CComQIPtr 在MFC中使用要注意什么

if(failed(l_hr)) { return l_hr; } //dosomething of itestcomptr couninitialize(); } 初看这段代码是没有任何问题的,但是运行还是会崩溃.如果我们在 coinitialize(null);下行加上"{"与couninitialize();上行加上"}"就不会出错了.为什么呢? 原因在于原来的coinitialize所开的套间在couninitialize();后已经被关闭. 而智能指针的组件对象却并没有释放,直到程序调用ccomptr的析构函数时才调用 itestcomptr的release方法,但是这时候,套间已经不在了,所以导致了程序的崩溃.在组件 的生命周期很短的时候,智能指针的使用基本是无害的,并且有时是非常方便的. 所以在使用智能指针时有以下建议: 1. 当对象的生命周期很长要小心使用. 2. 当对象的生命周期不确定时不要使用. 3. 千万不要使用全局的智能指针.。

智能指针注意事项

相关推荐:
  • 买家刷手()
  • 微创瘢痕怀孕人流后()
  • 做肝胆脾肾彩超前()
  • 新砌墙体的施工工艺及()
  • 出国做工程勘察的()
上一篇:幼儿园老师见习报告(见习医生见习报告) 下一篇:有专科学历本科相同科目能免考吗(我是全日制大专的学生,在本科,有些科目是一样的,问:怎样可)

相关推荐

买家刷手()
微创瘢痕怀孕人流后()
做肝胆脾肾彩超前()
新砌墙体的施工工艺及()
出国做工程勘察的()
投资另类理财产品的()
访学美国入关()
髋关节炎应()
玉米收获期()
老花眼应()
潮流时尚 写作素材 创新创业
生活常识 策划方案 安全知识
自考专业 家居生活 三农创业
励志故事 时尚穿搭 星座知识
热门分类

声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
 蜀ICP备2020033479号-4  Copyright © 2016  学习鸟. 页面生成时间:2.679秒

返回顶部