C++11智能指针 unique_ptr、shared_ptr、weak_ptr、循环引用、定制删除器
目录[*]智能指针
[*]场景引入 - 为什么需要智能指针?
[*]内存泄漏
[*]什么是内存泄漏
[*]内存泄漏的危害
[*]内存泄漏分类
[*]如何避免内存泄漏
[*]智能指针的使用及原理
[*]RAII
[*]简易例程
[*]智能指针的原理
[*]智能指针的拷贝题目
[*]智能指针的发展汗青
[*]std::auto_ptr
[*]模拟实现auto_ptr例程:
[*]这种方案存在的题目:
[*]Boost库中的智能指针
[*]unique_ptr
[*]模拟实现简易unique_ptr例程
[*]shared_ptr
[*]模拟实现简易shared_ptr例程:
[*]多线程测试例程
[*]shared_ptr循环引用题目
[*]原因图解分析:
[*]weak_ptr
[*]模拟实现简易weak_ptr
[*]解决循环引用题目
[*]定制删除器
[*]仿函数版本实现
[*]lambda版本实现
[*]定制删除器版本shared_ptr模拟实现
智能指针
场景引入 - 为什么需要智能指针?
C++有些场景下,处理异常安全题目时特殊繁琐
void example{ int *p1 = new int;//可能会抛异常1 int *p2 = new int;//可能会抛异常2 Func(); //可能会抛异常3 delete p1; delete p2;}int main(){ try{ example(); } catch(std::exception& e){ std::cout
页:
[1]