在c ++中从内存中删除对象

问题描述 投票:0回答:1

我是C ++的新手,但据我了解,完成处理后,您需要从内存中删除对象。

具有一个名为myClass的类。如果我创建一个新实例并调用其某些功能。像这样:

MyClass p;
p.funcCall(12);
p.anOtherFuncCall(4);

我应该如何再次释放p占用的内存?我读了this Microsoft文章。但是,如果我将其更改为:

MyClass* p = new MyClass
... call fucntions
delete p;

我不能再调用p.funcCall(12)之类的函数。

如果我对C ++中的内存管理有不正确的理解,我也希望听到。

c++ memory-management
1个回答
0
投票

在此代码中

MyClass p;
p.funcCall(12);
p.anOtherFuncCall(4);

您不必手动删除p。一旦超出范围,它将自动失效。这将更详细地解释here。您可以这样离开。

MyClass* p = new MyClass
... call fucntions
delete p;

如果需要,您也可以这样做。由于p不再是MyClass而是指向1的指针,因此语法有所不同。您必须这样写:

p->funcCall(12);
© www.soinside.com 2019 - 2024. All rights reserved.