阿摩線上測驗 登入

申論題資訊

試卷:111年 - 111 關務特種考試_四等_資訊處理:程式設計概要#107605
科目:程式設計
年份:111年
排序:0

題組內容

一、有關 C++物件導向程式設計,請回答下列問題:

申論題內容

(五)運算子中,何者用於動態分配記憶體和建構物件,且此運算子可回傳一 個指向物件的指標?

詳解 (共 2 筆)

詳解 提供者:114年高考上榜

new

詳解 提供者:hchungw
在C++中,用於動態分配記憶體並建構物件的運算子是 new。new 運算子會分配足夠的記憶體來存儲特定類型的物件,並呼叫對應的建構函數來初始化該物件。它最後會回傳一個指向新分配和構造物件的指標。
以下是 new 運算子的基本用法示例:
cpp
Copy code
MyClass* myObjectPtr = new MyClass();
這段代碼會動態分配一個 MyClass 類型的物件,呼叫它的預設建構函數,並返回一個指向這個新物件的指標。
使用 new 進行動態記憶體分配後,應該對應使用 delete 運算子來釋放記憶體,並呼叫物件的解構函數。如果是分配了物件陣列,則應使用 delete[] 來釋放記憶體。
例如:
cpp
Copy code
delete myObjectPtr; // 釋放單個物件
記住,適當地管理動態分配的記憶體是很重要的,以避免記憶體泄漏。在現代C++中,通常建議使用智慧指標,如 std::unique_ptr 或 std::shared_ptr,它們可以自動管理記憶體的生命週期,從而減少記憶體管理錯誤。