#include <iostream> template<typename T> class SmartPointer { public: SmartPointer(T* ptr):_ptr(ptr) { if (ptr) _count = new size_t(1); else _count = new size_t(0); } SmartPointer(const SmartPointer& sp) {
目录 1. 初识智能指针 1.1 内存泄漏的原因分析 1.2 内存泄漏的解决方案 2. 智能指针类模板 2.1 智能指针的意义 2.2 STL 中的智能指针应用 2.3 QT 中的智能指针应用 2.4 智能指针模板类的实现 初识智能指
何为智能指针,即不需要用户再自动手动New和Delete掉,由内部类进行new和delete,这样可以防止用户忘记释放掉指针而造成的内存泄漏。 这里简单的实现unique_ptr智能指针的方式。 头文件 // 自制智能指针类头文件 template class SmartPointer{ public: SmartPointer(T* ptr_); ~S
智能指针内存泄漏当代C++软件平台中的智能指针智能指针的设计方案代码实现小结 内存泄漏 ·动态申请堆空间,用完不归还 ·C++语言中没有垃圾回收的机制 ·指针无法控制所指堆空间的生命周期 当代C++软件平台中的智能指针 ·指针生命周期结束时主动释放堆空间 ·一片堆空间最多只
转自 C++11中智能指针的原理、使用、实现 #include <iostream>#include <memory>template<typename T>class SmartPointer {private: T* _ptr; size_t* _count;public: SmartPointer(T* ptr = nullptr) : _ptr(ptr) { if (_ptr) {