本文介绍: 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不能赋值拷贝,但可以通过调用release()和reset()来转移对象控制权。

release()返回unique_ptr当前保存的指针并将其置空。因此,p2被初始化为p1原来保存的指针,而p1被置空。

reset()令unique_ptr重新指向给定的指针。如果unique_ptr不为空,它原来的对象被释放。因此p2调用reset()释放了用p1初始化的对象,将p3的控制权转移给p2。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注