如何从 c++ 的方面(方面 c++)释放或删除函数中的分配对象?
Posted
技术标签:
【中文标题】如何从 c++ 的方面(方面 c++)释放或删除函数中的分配对象?【英文标题】:How to free or delete an Allocated object in a fuction, from an aspect of c++ (aspectc++)? 【发布时间】:2015-01-15 09:56:07 【问题描述】:我需要一种方法来释放或删除在类中的函数中分配的内存,从c++的方面。 p>
假设我有一个这样的类 A:
class A
Foo* fooObject;
public:
A()
fooObject = new Foo();
我必须定义一个像这样的方面:
aspect FreeMemory
advice execution("void A(void)") : after()
delete fooObject;
;
但在 FreeMemory 方面,我无法访问 fooObject。我需要一种方法来解决我的问题。有什么帮助吗?
【问题讨论】:
【参考方案1】:您无法访问 fooObjects,因为它是私有成员。 您可能必须在类中声明“aspect FreeMemory”(公共部分是正确的)作为“朋友”。
【讨论】:
如果我将类 A 的 fooObject 属性更改为公共属性,那么我可以从 FreeMemory 访问这个分配的对象i> 接受? 我的意思是,在我的程序中,我多次创建类 A 的实例,并且在这个类的每个构造中,我的程序调用我的方面 advice,在这个调用中我需要删除特定实例的分配内存。这对我来说还不清楚。我只想知道这种方式是真是假?以上是关于如何从 c++ 的方面(方面 c++)释放或删除函数中的分配对象?的主要内容,如果未能解决你的问题,请参考以下文章