何时在 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中文网其他相关文章!