本文介绍: release()返回unique_ptr当前保存的指针并将其置空。因此,p2被初始化为p1原来保存的指针,而p1被置空。reset()令unique_ptr重新指向给定的指针。如果unique_ptr不为空,它原来的对象被释放。因此p2调用reset()释放了用p1初始化的对象,将p3的控制权转移给p2。
unique_ptr
一个unique_ptr独占它所指向的对象。当unique_ptr被销毁时,它所指向的对象也被销毁。
初始化unique_ptr时只能使用直接初始化的方式,不能使用普通的拷贝或赋值操作。
unique_ptr的一些操作。
unique_ptr不能赋值和拷贝,但可以通过调用release()和reset()来转移对象控制权。
release()返回unique_ptr当前保存的指针并将其置空。因此,p2被初始化为p1原来保存的指针,而p1被置空。
reset()令unique_ptr重新指向给定的指针。如果unique_ptr不为空,它原来的对象被释放。因此p2调用reset()释放了用p1初始化的对象,将p3的控制权转移给p2。
删除器
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。