
Linux C++
shun_smile
爱运动,爱爬山,爱旅游,爱打羽毛球,梦想是成为一名高级软件工程师。
展开
-
简易实现auto_ptr智能指针
智能指针能够自动释放动态内存的指针。主要的机制就是用一个类来将指针包裹起来,然后在类的实例析构的时候自动释放内存。今天自己实现C++标准库的传统的auto_ptr智能指针。如果不是自己编写的智能指针,运行时要加 -std=c++11选项,因为c++11标准里定义了智能指针。#include <iostream>using namespace std;template<...原创 2018-05-08 20:54:58 · 256 阅读 · 0 评论 -
简易实现shared_ptr智能指针
shared_ptr智能指针与auto_ptr智能指针不同的是,拷贝构造或赋值后,原来的指针仍然能够使用。 原因是这种指针用一个引用计数来计算有多少个指针指向同一个空间,拷贝构造和赋值,都会让计数+1,智能指针析构的时候计数-1,计数为0才释放内存。所以根据这几点可以自己实现shared_ptr智能指针的功能。#include <iostream>using namespa...原创 2018-05-08 21:07:00 · 766 阅读 · 1 评论 -
简易实现unique_ptr智能指针
c++11的unique_ptr智能指针: 一旦创建,就指向那块内存,以后再也不能让其它的智能指针指向同一块内存。 这个指针实现比较简单,只需定义一个类的实例时,自己类内部删除拷贝构造函数和删除赋值运算符重载函数就可以了。#include <iostream>using namespace std;template<typename T>class muniq...原创 2018-05-08 21:14:45 · 1322 阅读 · 2 评论