首頁 > 後端開發 > C++ > 如何在沒有預設構造函數的情況下在 C 中初始化物件數組?

如何在沒有預設構造函數的情況下在 C 中初始化物件數組?

Susan Sarandon
發布: 2024-12-22 11:02:10
原創
879 人瀏覽過

How to Initialize an Object Array in C   Without a Default Constructor?

不使用預設建構函式初始化物件陣列

在C 中,當建立物件陣列時,會呼叫預設建構子來初始化每個元素。但是,在某些情況下,如果預設的建構函式是私有或不存在,則在初始化物件陣列時可能會遇到錯誤。

為了克服這個問題,您可以採用placement-new技術,該技術提供了一種就地初始化物件的方法,無需呼叫預設建構子。

以下是如何使用placement-new 來初始化沒有預設值的物件陣列建構子:

在此程式碼中,raw_memory 表示用於儲存Car 物件陣列的原始記憶體區塊。然後,我們將其轉換為 Car * 指針,並使用 Placement-new 就地構造每個對象,並使用指定的數字對其進行初始化。

使用完陣列後,請記住反向銷毀物件排序並刪除使用placement-new分配的原始記憶體。這種方法允許您初始化物件數組,即使它們的預設建構函數無法存取。

以上是如何在沒有預設構造函數的情況下在 C 中初始化物件數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板