我是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 ++中的内存管理有不正确的理解,我也希望听到。
在此代码中
MyClass p;
p.funcCall(12);
p.anOtherFuncCall(4);
您不必手动删除p
。一旦超出范围,它将自动失效。这将更详细地解释here。您可以这样离开。
MyClass* p = new MyClass
... call fucntions
delete p;
如果需要,您也可以这样做。由于p
不再是MyClass
而是指向1的指针,因此语法有所不同。您必须这样写:
p->funcCall(12);