Управление памятью — Как освободить или удалить выделенный объект в функции, из аспекта c ++ (aspectc ++)?

Мне нужен способ освободить или же удалять выделенная память в функции в классе, из аспект с ++.

Давайте представим, что у меня есть класс с именем A, например:

class A{
Foo* fooObject;

public:
A() {
fooObject = new Foo();
}
}

и я должен определить аспект как это:

aspect FreeMemory{
advice execution("void A(void)") : after()
{
delete fooObject;
}
};

Но в аспекте FreeMemory я не могу получить доступ к fooObject. Мне нужен способ решить мою проблему. Любая помощь?

1

Решение

Вы не можете получить доступ к fooObjects, потому что это приватный участник.
Вы, вероятно, должны объявить «аспект FreeMemory» в классе (публичная часть будет права) как «друг».

0

Другие решения