C++为什么避免在资源管理函数之外使用new和delete

本篇内容介绍了“C++为什么避免在资源管理函数之外使用new和delete”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

ES.60:避免在资源管理函数之外使用new和delete

Reason(原因)

Direct resource management in application code is error-prone and tedious.

在应用代码中直接进行资源管理麻烦且易错。

Note(注意)

This is also known as the rule of "No naked new!"

本准则也被称为“禁止暴露的new操作”

Example, bad(反面示例)

void f(int n)
{
   auto p = new X[n];   // n default constructed Xs
   // ...
   delete[] p;
}

There can be code in the ... part that causes the delete never to happen.

在...省略的位置的代码可以让delete操作永远不发生。

Enforcement(实施建议)

Flag naked news and naked deletes.

标记暴露的new和delete操作。

“C++为什么避免在资源管理函数之外使用new和delete”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!