美文网首页
2020-12-28 智能指针

2020-12-28 智能指针

作者: hangzhou吴彦祖 | 来源:发表于2020-12-28 19:29 被阅读0次

主要是内存泄漏,忘记释放。 java使用了垃圾回收技术,不需要人为管理。

C++解决方法:RAII  引用计数 依托栈和析构函数

sharedPtr  强指针,多个智能指针可以共享同一对象;循环引用 需要配合weakptr去修正

uniquePtr  独占式拥有 保证同一时间内只有一个智能指针可以访问该对象。可以移交拥有权。

weakPtr  允许你共享 但是你不拥有该对象 一旦最末一个拥有该对象的智能指针失去了所有权,任何weakptr都会自动变为空。

什么叫引用计数?  深浅拷贝 优缺点结合?

解决重复释放问题;增加一个变量 记录资源使用的次数。 int* m_pCount;当其为0时候 资源释放 避免重复释放。

最后对计数器进行简易封装。把引用技术作为一个新的类来使用。解决了重复释放。 但是一个被修改 全部被修改了  这显然不对的。复用性不好。

解决思路:写时拷贝,当某个共享资源改变时候,需要对资源进行重新拷贝。release一份 然后创建另一份。

自己实现一个简易版的智能指针“

1 用起来像指针  2会自己对资源进行释放  在栈上构建哦

class CSmartPtr

{

CSmartPtr(CStudent* pobj)

m_pobj=pobj;

}

private:

CStudent* m_pObj;  //将资源放入到智能指针类中 作为成员变量 管理起来

}

像一个指针  需要重载 operator

https://blog.csdn.net/albertsh/article/details/82286999

相关文章

  • 2020-12-28 智能指针

    主要是内存泄漏,忘记释放。 java使用了垃圾回收技术,不需要人为管理。 C++解决方法:RAII 引用计数 依托...

  • 目录

    智能指针(1) 智能指针(2) 智能指针(3) 智能指针之使用 容器 - vector(1) 容器 - vecto...

  • 智能指针到Android引用计数

    智能指针 LightRefBase RefBaseStrongPointerWeakPointer 智能指针 这是...

  • C++面试重点再梳理

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

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

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

  • 第十六章 string类和标准模板库(2)智能指针模板类

    (二)智能指针模板类 智能指针是行为类似指针的类对象,但这种对象还有其他便于管理内存的功能。 1.使用智能指针 (...

  • Rust for cpp devs - 智能指针

    与 cpp 类似,Rust 也有智能指针。Rust 中的智能指针与引用最大的不同是,智能指针 own 内存,而引用...

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

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

  • 智能指针

    1. 什么是智能指针? 智能指针是行为类似于指针的类对象,但这种对象还有其他功能。 2. 为什么设计智能指针? 引...

  • chrome中智能指针使用

    chrom中智能指针的概述和作用 chrome中智能指针的用法和总结 包含如下四种智能指针:scoped_ptr ...

网友评论

      本文标题:2020-12-28 智能指针

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