所以在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