解决方法
如果你的意思是你在源代码中需要与拥有new的实例相同数量的删除实例,那么没有.您可以在多个位置创建对象,但所有这些对象都由同一行代码删除.实际上这是一个常见的习语.
具有不同类型的智能指针通常在用户代码中的许多地方使用许多不同的对象,并将它们从库代码中的单个位置删除.
编辑
从技术上讲,每个成功的内存分配调用都需要与从原始分配调用中获取返回指针的dellocation调用匹配.
大多数新表达式导致调用new new,分配内存并在新分配的内存中构造一个对象.使用删除表达式会破坏对象并导致调用运算符删除,该操作将释放已分配的内存.
有一些新的表达式可以在预先分配的内存中构造对象(placement new).这些不应与删除表达式匹配,但可能需要以与原始分配对应的方式释放预分配的内存.