C++面试高频题---实现STL的shared_ptr指针

本文探讨了实现C++智能指针shared_ptr的关键步骤,包括构造函数、拷贝构造函数、重载->和*操作符、赋值运算符、析构函数以及获取引用计数的功能。通过理解这些操作,有助于深入理解shared_ptr的工作原理。
摘要由CSDN通过智能技术生成

实现shared_ptr指针

一般来说,实现一个shared_ptr需要实现这几个操作:

1.构造函数,进行初始化操作。
2.拷贝构造函数,让拷贝的shared_ptr的引用计数进行加一操作
3.重载->操作符,得到对应的对象指针。
4.重载*操作符,得到对应的对象。
5.重载=操作符,需要将赋值符左边的shared_ptr的引用计数进行-1操作,如果左边的引用计数为0的话,则进行销毁。将赋值符右边的进行+1操作。然后将右边的引用计数和对象赋给左边。
6.析构函数,如果当前的引用计数为0的话就调用delete进行销毁,否则引用计数减1.
7.获取引用计数。

4template <typename T>
5 class shared_ptr {
   
6 public:
7     shared_ptr(T* p) : count(new int(1)), _ptr(p) {
   
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值