首页 > 后端开发 > C++ > 我什么时候应该使用 C 中的'新”运算符?

我什么时候应该使用 C 中的'新”运算符?

DDD
发布: 2024-11-30 10:51:11
原创
811 人浏览过

When Should I Use the

何时在 C 中使用“new”?

作为从 C#/Java 过渡的开发人员,理解 C 中的对象实例化可能会令人困惑。本文阐明了何时使用“new”运算符以及何时避免使用它。

使用“new”:确保对象长寿

当您想要一个对象持续存在,直到它被明确删除。如果没有“new”,对象一旦超出范围就会被销毁。考虑以下示例:

void foo() {
  Point p = Point(0,0); // p is destroyed here
}

for (...) {
  Point p = Point(0,0); // p is destroyed after each iteration
}
登录后复制

对数组使用“new”

C 中的数组是就地分配的(即在堆栈上)。但是,如果您需要创建一个在运行时确定大小的数组,则必须使用“new”来分配它。

void foo(int size) {
   Point* pointArray = new Point[size];
   ...
   delete [] pointArray;
}
登录后复制

就地分配(不使用“new”)

出于性能原因,就地分配更可取。对于类中声明的对象,它会自动发生。

class Foo {
  Point p; // p will be destroyed when Foo is
};
登录后复制

请记住,使用“new”分配和释放对象比就地分配计算量更大。仅在必要时使用它,以避免不必要的开销。

以上是我什么时候应该使用 C 中的'新”运算符?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板