1、静态内存用来保存局部static对象、类static数据成员以及定义在任何函数之外的变量
2、栈内存用来保存定义在函数内的非static对象。分配在静态或栈内存中的对象由编译器自动创建和销毁
3、堆内存,存储动态分配的对象
4、两种智能指针shared_ptr允许多个指针指向同一个对象,unique_ptr则独占所指向的对象。
标准库中定义的一个名为week_ptr的伴随类,一种弱引用,指向shared_ptr所管理的对象。都定义在memory头文件
5、shared_ptr和unique_ptr都支持的操作
【1】shared_ptr<T>sp 空只能指针,指向类型为T的对象
【2】unique_ptr<T>up
【3】p p用作条件判断,若p指向一个对象,则为true
【4】*p 解引用、获取它指向的对象
【5】p->mem 等价于(*p).mem
【6】p.get() 返回p中保存的指针 ,若智能指针释放了其对象,返回的指针所指向的对象也就消失了
【7】swap(p,q) 等价p.swap(q)交换p和q指针
6、shared_ptr独有的操作
【1】make_shared<T>(args) 返回一个shared_ptr,指向一个动态分配的类型为T的对象。使用args初始化此对象
【2】shared_ptr<T>p(q) p是q的拷贝;递增q中的计
2、栈内存用来保存定义在函数内的非static对象。分配在静态或栈内存中的对象由编译器自动创建和销毁
3、堆内存,存储动态分配的对象
4、两种智能指针shared_ptr允许多个指针指向同一个对象,unique_ptr则独占所指向的对象。
标准库中定义的一个名为week_ptr的伴随类,一种弱引用,指向shared_ptr所管理的对象。都定义在memory头文件
5、shared_ptr和unique_ptr都支持的操作
【1】shared_ptr<T>sp 空只能指针,指向类型为T的对象
【2】unique_ptr<T>up
【3】p p用作条件判断,若p指向一个对象,则为true
【4】*p 解引用、获取它指向的对象
【5】p->mem 等价于(*p).mem
【6】p.get() 返回p中保存的指针 ,若智能指针释放了其对象,返回的指针所指向的对象也就消失了
【7】swap(p,q) 等价p.swap(q)交换p和q指针
6、shared_ptr独有的操作
【1】make_shared<T>(args) 返回一个shared_ptr,指向一个动态分配的类型为T的对象。使用args初始化此对象
【2】shared_ptr<T>p(q) p是q的拷贝;递增q中的计