智慧指標的模板,用來管理動態分配的記憶體
#ifndef SMARTPTR_HPP
#define SMARTPTR_HPP
#include <stddef.h>
template <typename T>
class SmartPtr{
public:
SmartPtr(T *type = NULL);
void resetPtr(T *type);
const T *getPtr()const;
operator bool() const{
return ptr_ == NULL;
}
~SmartPtr();
T &operator*();
const T &operator*()const;
T *operator->();
const T *operator->()const;
private:
SmartPtr(const SmartPtr &);
void operator=(const SmartPtr &);
T *ptr_;
};
template <typename T>
inline SmartPtr<T>::SmartPtr(T *type)
:ptr_(type)
{}
template <typename T>
inline void SmartPtr<T>::resetPtr(T *type)
{
if(ptr_ != type){
if(ptr_ != NULL){
delete ptr_;
}
ptr_ = type;
}
}
template <typename T>
inline const T *SmartPtr<T>::getPtr() const
{
return ptr_;
}
template <typename T>
inline SmartPtr<T>::~SmartPtr()
{
if(ptr_ != NULL){
delete ptr_;
}
}
template <typename T>
inline T &SmartPtr<T>::operator*()
{
return *ptr_;
}
template <typename T>
inline const T &SmartPtr<T>::operator*() const
{
return *ptr_;
}
template <typename T>
inline T *SmartPtr<T>::operator->()
{
return ptr_;
}
template <typename T>
inline const T *SmartPtr<T>::operator->() const
{
return ptr_;
}
#endif /*SMARTPTR_H*/
相關文章
- C++ 指標動態記憶體分配C++指標記憶體
- c++動態記憶體管理與智慧指標C++記憶體指標
- 動態記憶體分配記憶體
- 簡單理解動態記憶體分配和靜態記憶體分配的區別記憶體
- C++ 動態記憶體分配C++記憶體
- 動態分配記憶體地址(.NET)記憶體
- C++動態記憶體分配C++記憶體
- c語言野指標與結構體指標動態記憶體分配小解C語言指標結構體記憶體
- C語言(動態記憶體分配)C語言記憶體
- C++中的動態記憶體與智慧指標C++記憶體指標
- 動態記憶體管理記憶體
- 函式指標、回撥函式、動態記憶體分配、檔案操作函式指標記憶體
- c和指標中關於動態分配記憶體malloc和qsort的一個例子指標記憶體
- C語言-記憶體管理之一[記憶體分配]C語言記憶體
- linux記憶體管理(一)實體記憶體的組織和記憶體分配Linux記憶體
- c++動態記憶體智慧指標及weak_ptr用法的理解C++記憶體指標
- 自動共享記憶體管理 自動記憶體管理 手工記憶體管理記憶體
- C++ 動態記憶體分配與名稱空間C++記憶體
- Pytorch視訊記憶體動態分配規律探索PyTorch記憶體
- C語言之動態記憶體管理C語言記憶體
- 【記憶體管理】頁面分配機制記憶體
- [記憶體管理]智慧指標之shared_array記憶體指標
- 二維陣列的動態記憶體分配和釋放 (轉)陣列記憶體
- mysql用於分配記憶體的引數MySql記憶體
- C語言malloc()函式:動態分配記憶體空間C語言函式記憶體
- 記憶體動態分配與釋放,malloc和new區別記憶體
- C++動態記憶體管理——new/deleteC++記憶體delete
- [Virtualization]ESXi體系結構與記憶體管理(二)控制記憶體分配記憶體
- [Virtualization]ESXi體系結構與記憶體管理(三)控制記憶體分配記憶體
- Python如何管理記憶體?記憶體分配機制是什麼?Python記憶體
- MySQL記憶體管理,記憶體分配器和作業系統MySql記憶體作業系統
- JavaScript記憶體分配JavaScript記憶體
- JVM記憶體分配JVM記憶體
- java記憶體分配Java記憶體
- 垃圾收集器與記憶體分配策略_記憶體分配策略記憶體
- 函式中的指標分配的記憶體怎麼釋放函式指標記憶體
- 記憶體分配的確定記憶體
- weblogic的記憶體分配Web記憶體