InitMyObject(MyObject* ptr)。
{
*ptr = MyObject()。
}
struct Data
{
MyObject obj;
};
extern Data資料。
// ...
InitMyObject(&data.obj)。
delete &data.obj; / ? 這是否可以?
我如何洗掉(呼叫解構器)data.obj,我也嘗試將Data::obj作為指標(默認為nullptr),然后傳遞指標,但在Init上崩潰了。
uj5u.com熱心網友回復:
我怎樣才能洗掉(呼叫deconstructor)data.obj
data的析構器將銷毀其子物件。由于data具有靜態存盤,它將在程式結束時被自動銷毀。
delete &data.obj; /? is this ok
不,你只能洗掉一個非置位的新運算式的結果。您不可以洗掉指向成員物件的指標。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/306756.html
標籤:
