C++智能指针
智能指针的使用和原理 RAII RAII(resource acquisition is initaliation) 是一种利用 对象生命周期 来控制程序资源( 内存,文件句柄,网络连接, 互斥量等) 的技术 在对象构造时获取资源 ,接着控制对资源的访问使之在对象的生命周期内始终保持有效, 最后在对象析构的时候释放资源 .实际上是把管理资源的任务给给一个对象,此时就可以: 不需要显式的释放资源 采取这种方式,对象所需的资源在其声明周期内始终保持有效 智能指针的原理 //在模板类中重载*,->.使smartptr可以实现指针一样的使用 template < class T > class SmartPtr { public : SmartPtr ( T * ptr = nullptr ) : _ptr ( ptr ) { } ~ SmartPtr ( ) { if ( _ptr ) delete _ptr ; } T & operator * ( ) { return * _ptr ; } T * operator - > ( ) { return _ptr ; } private : T * _ptr ; } ; struct Date { int _year ; int _month ; int _day ; } ; int main ( ) { SmartPtr < int >