何時在 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中文網其他相關文章!