所以在C++,如果我創建了一個對象期運用new
,我應該使用delete
例如困惑C++內存釋放
Segment::Segment(float length)
{
segmentLength = length;
angle = 0.0f;
x = Rand::randFloat(1.0f, 1.5f);
y = Rand::randFloat(1.0f, 1.5f);
vx = Rand::randFloat(0.0f, 1.0f);
vy = Rand::randFloat(0.0f, 1.0f);
prevX = Rand::randFloat(0.0f, 1.0f);
prevX = Rand::randFloat(0.0f, 1.0f);
};
總是釋放它而可以說我像這樣使用另一個類,例如,
this._segmentObject = Segment(2.0f);
this._segmentPointer = new Segment(2.0f);
那堂課,我知道我應該在this._segmentPointer調用delete
的析構函數,但我怎麼確保內存被釋放了另外一個?
「_segmentObject自動分配在堆棧上」 - 這是錯誤的。它可能在堆上分配(例如在另一個對象內部)。然而,這是無關緊要的。 –
它沒有在堆棧上分配 – Novikov