不使用預設建構函式初始化物件陣列
在C 中,當建立物件陣列時,會呼叫預設建構子來初始化每個元素。但是,在某些情況下,如果預設的建構函式是私有或不存在,則在初始化物件陣列時可能會遇到錯誤。
為了克服這個問題,您可以採用placement-new技術,該技術提供了一種就地初始化物件的方法,無需呼叫預設建構子。
以下是如何使用placement-new 來初始化沒有預設值的物件陣列建構子:
在此程式碼中,raw_memory 表示用於儲存Car 物件陣列的原始記憶體區塊。然後,我們將其轉換為 Car * 指針,並使用 Placement-new 就地構造每個對象,並使用指定的數字對其進行初始化。
使用完陣列後,請記住反向銷毀物件排序並刪除使用placement-new分配的原始記憶體。這種方法允許您初始化物件數組,即使它們的預設建構函數無法存取。
以上是如何在沒有預設構造函數的情況下在 C 中初始化物件數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!