美文网首页C++面试题集
智能指针的简单实现

智能指针的简单实现

作者: saviochen | 来源:发表于2017-09-02 11:51 被阅读82次

下面实现一个指向int的智能指针。 sub为辅助类,用于存储指针引用的状态。所有成员都是私有的,仅供autoptr类调用。

class sub{
    int * ptr;
    int count;
    friend class autoptr;
    sub(int * p) :ptr(p), count(1){}
    ~sub(){
        if (--count == 0)
            delete ptr;
    }
};

class autoptr{
public:
    autoptr(int * pBase) : psub(new sub(pBase)) {}
    autoptr(const autoptr & autop) : psub(autop.psub) { ++psub->count; }
    autoptr & operator = (const autoptr & autop){
        if (--psub->count == 0)//等号左侧减引用
            delete psub; 
        psub = autop.psub;
        ++psub->count;//增加原等号右侧引用数
        return *this;
    }
private:
    sub* psub;
};

int main(){
    int * p1 = new int(1);
    int * p2 = new int(2);
    autoptr ptr1(p1);
    autoptr ptr2(ap1);
    autoptr ptr3(p2);
    ptr3= ptr2;
    return 0;
}

智能指针实现的结构如下图所示:

相关文章

  • C++研发工程师笔试题/面试题(1-10)

    1. (1) 简述智能指针的原理;(2)c++中常用的智能指针有哪些?(3)实现一个简单的智能指针。 简述智能指针...

  • C++面试重点再梳理

    智能指针 请讲一下智能指针原理,并实现一个简单的智能指针 智能指针其实不是一个指针。它是一个用来帮助我们管理指针的...

  • C++智能指针

    引用计数技术及智能指针的简单实现 基础对象类 辅助类 智能指针类 使用测试 参考: C++ 引用计数技术及智能指针...

  • 九章算法

    请简述智能指针原理,并实现一个简单的智能指针。 如何处理循环引用问题? 请实现一个单例模式的类,要求线程安全 如何...

  • 智能指针的简单实现

    下面实现一个指向int的智能指针。 sub为辅助类,用于存储指针引用的状态。所有成员都是私有的,仅供autoptr...

  • C++动态内存与智能指针

    智能指针 智能指针的类型 shared_ptr实现共享式拥有的概念(shared ownership)。多个智能指...

  • Android智能指针

    网上已经有很多分析智能指针的文章了,讲得不错的是:Android系统的智能指针(轻量级指针、强指针和弱指针)的实现...

  • C++ 指针特别篇-指针转换和智能指针

    智能指针 智能指针的头文件,#include ① shared_ptr 操作引用计数实现共享式...

  • 9_智能指针示例

    智能指针在37_智能指针分析中详细学习过。此处实例中通过模板实现了可复用的智能指针模板类 需要一个特殊的指针——通...

  • C++ 引用计数技术及智能指针的简单实现

    1.智能指针是什么 简单来说,智能指针是一个类,它对普通指针进行封装,使智能指针类对象具有普通指针类型一样的操作。...

网友评论

    本文标题:智能指针的简单实现

    本文链接:https://www.haomeiwen.com/subject/vloljxtx.html