对C++内存释放感到困惑

One*_*ake 1 c++ memory-management

所以在C++中,如果我创建一个使用的对象,new我应该总是使用delete
例如解除分配它

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);
};
Run Code Online (Sandbox Code Playgroud)

并且我可以说我在另一个类中使用它,例如

this._segmentObject = Segment(2.0f);
this._segmentPointer = new Segment(2.0f);
Run Code Online (Sandbox Code Playgroud)

在该类的析构函数中,我知道我应该调用deletethis._segmentPointer,但是如何确保为另一个释放内存呢?

Kon*_*lph 5

但是,我如何确保为另一个内存释放内存?

它是自动的.这就是为什么这种类型的存储被称为自动存储.在存储生命周期结束时释放自动存储,并调用对象的析构函数.

当程序控件离开已分配对象的范围时,对象生命周期结束.