智能指针shared_ptr的初始化

shared_ptr是智能指针,是模板,头文件是memory:

 

shared_ptr<string> p1

 

最安全的使用方法是调用make_shared标准库函数,此函数在动态内存中分配一个对象并初始化它,返回此对象的shared_ptr。头文件是memory:

 

shared_ptr<int> p2 = make_shared<int>(42);//传递的参数必须能用来初始化一个in


shared_ptr<string>p3 = make_shared<string>(10,'9');//传递的参数必须与string的某个构造函数相匹配


shared_ptr<int>p4 = make_shared<int>();//如果不传递任何参数,对象就会进行值初始化(值初始化依赖于数据类型,内置类型例如int,初始化为1,类类型由类默认初始化

 

通常用auto,这种方式较为简单:

 

auto p5 = make_shared<vector<string>>();//p5指向一个动态分配的空vector<string>

 

智能指针与常规指针的重要区别是它负责自动释放所指向的对象。

 

转载于:https://www.cnblogs.com/mu-ye/p/7634156.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值