问:智能指针可以对指针的引用数量进行计数,一个智能指针释放时,别的智能指针怎么知道的? 这是一个脑筋急转弯题。。。。 不像普通的变量,静态成员变量是被所有类对象共享的,不同的对象可以访问对方的该静态成员变量,因此静态成员变量和类对象并没有联系。 The static keyword has anot ...
分类:
编程语言 时间:
2019-10-02 01:01:23
阅读次数:
306
1.reset的作用: reset() 相当于释放当前所控制的对象reset(T* p) 相当于释放当前所控制的对象,然后接管p所指的对象reset(T*, Deleter) 和上面一样 2.get: 获取对象指针 ...
分类:
其他好文 时间:
2019-09-30 23:52:45
阅读次数:
79
简介 C++没有内存自动回收机制,对堆内存的管理就是简单的new和delete,每次new出来的内存都需要手动delete释放。但由于忘记、流程复杂或者异常退出等,都有可能导致没有执行delete释放内存,造成内存泄漏。 在实际工程中,我们往往希望将精力放在应用层上而不是费劲心思处理语言的细枝末节( ...
分类:
其他好文 时间:
2019-09-29 12:30:23
阅读次数:
67
引文:C++对指针的管理提供了两种解决问题的思路:1.不允许多个对象管理一个指针2.允许多个对象管理一个指针,但仅当管理这个指针的最后一个对象析构时才调用deleteps:这两种思路的共同点就是只允许delete一次,下面将讨论的shared_ptr就是采用思路1实现的ps:智能指针不是指针,而是类... ...
分类:
编程语言 时间:
2019-09-21 17:16:33
阅读次数:
105
有三个智能指针,auto_ptr(弃用)、unique_ptr、shared_ptr. 智能指针可以自动跟踪动态内存,在其过期时自动释放。 一、shared_ptr 用于new创建的对象,而不适用于new[]创建的对象, 用于多个指针共享一个地址的情况。 二、unique_ptr 用于只存留一个指针 ...
分类:
其他好文 时间:
2019-09-08 09:52:43
阅读次数:
79
STL 四种智能指针 链接:https://blog.csdn.net/k346k346/article/details/81478223 C++智能指针总结 链接:https://www.cnblogs.com/wuyepeng/p/9741241.html ...
分类:
编程语言 时间:
2019-09-04 23:00:20
阅读次数:
80
#include #include using namespace std; class PokerGame{ public: int cards; int mumber; string name; PokerGame(int cards, int mumber){ this->cards = ca... ...
分类:
编程语言 时间:
2019-09-04 21:50:54
阅读次数:
93
ComPtr是为COM而设计的智能指针。它支持WindowsRT,也支持传统Win32。相比ATL里的CComPtr类,它有了一些提升。 ComPtr包含在Windows 8.x SDK and Windows 10 SDK, 如果是Windows7系统,需要下载Windows7.1 SDK 下载地 ...
分类:
其他好文 时间:
2019-09-02 19:19:29
阅读次数:
101
前言 C++里面的四个智能指针: auto\_ptr, unique\_ptr,shared\_ptr, weak\_ptr 其中后三个是C++11支持,并且第一个已经被C++11弃用。 C++11智能指针介绍 智能指针主要用于管理在堆上分配的内存,它将普通的指针封装为一个栈对象。当栈对象的生存周期 ...
分类:
编程语言 时间:
2019-09-02 10:07:29
阅读次数:
114
引入 shared_ptr 是c++为了提高安全性而添加的智能指针,方便了内存管理。 特点 shared_ptr 是通过指针保持对象共享所有权的智能指针。多个 shared_ptr 对象可占有同一对象。这便是所谓的引用计数(reference counting)。一旦最后一个这样的指针被销毁,也就是 ...
分类:
其他好文 时间:
2019-09-01 16:51:16
阅读次数:
88