1.智能指针解决内存泄漏的问题
1.1.智能指针是存储只想动态内存分配对象的指针类,用于生存期的控制,能够确保在离开指针所作用域时,自动正确的销毁动态分配的对象,防止内存泄漏
通过使用引用计数实现,使用一次增1,析构一次减1
1.2.三种智能指针
a.shared_ptr共享的智能指针
使用引用计数,每一个shared_ptr拷贝都指向一个相同的内存,最后一次析构释放
初始化
不能直接将原始指针赋值来初始化,只能通过构造函数和辅助方法来初始化
智能指针可以通过bool类型来判断指针是否为null
一个未初始化的智能指针可以通过reset方法初始化;当智能指针中有值的时候,用reset会使引用计数减1
获取原始指针
int* p = ptr.get()
指定删除器
1.1.智能指针是存储只想动态内存分配对象的指针类,用于生存期的控制,能够确保在离开指针所作用域时,自动正确的销毁动态分配的对象,防止内存泄漏
通过使用引用计数实现,使用一次增1,析构一次减1
1.2.三种智能指针
a.shared_ptr共享的智能指针
使用引用计数,每一个shared_ptr拷贝都指向一个相同的内存,最后一次析构释放
初始化
不能直接将原始指针赋值来初始化,只能通过构造函数和辅助方法来初始化
智能指针可以通过bool类型来判断指针是否为null
一个未初始化的智能指针可以通过reset方法初始化;当智能指针中有值的时候,用reset会使引用计数减1
获取原始指针
int* p = ptr.get()
指定删除器