在 C 中显式调用析构函数
虽然通常建议不要显式调用析构函数,但在某些特定情况下有必要这样做。 C 11 标准 N3485 第 13.4.5 节中有关模板参数的示例说明了一种这样的情况。
如代码片段所示,允许在类模板特化的对象上显式调用析构函数,显式指定模板参数:
<code class="cpp">template<class T> struct A { ~A(); }; void f(A<int>* p, A<int>* q) { p->A<int>::~A(); // OK: destructor call q->A<int>::~A<int>(); // OK: destructor call }</code>
在处理使用放置 new 创建的对象时,此显式调用变得必要。在这种情况下,必须显式调用析构函数才能正确释放关联的内存。
除了放置删除之外,还有其他有限的场景需要显式析构函数调用:
以上是以下是一些基于问题的标题,请记住其内容: * 什么时候需要显式调用 C 中的析构函数? * 为什么在 C 中显式调用析构函数? * 什么是Sp的详细内容。更多信息请关注PHP中文网其他相关文章!