У меня небольшой вопрос:
Foo *myFoo;
myFoo = new Foo(anotherFoo); // some deep copy of another object
myFoo = new Foo(yetAnotherFoo); // another deep copy of yet another object
Это утечка памяти и, если да, как я могу ее избежать?Ситуация в моей программе такова, что «myFoo» является членом класса, и я хочу использовать его как «один-единственный» объект хранения для глубокой копии некоторого другого объекта время от времени (потому что скопированный объект изменяетсяпотом и мне нужен начальный объект для последующего сравнения).
Я пробовал простой обходной путь, например:
// within a class method of the same class
if (myFoo!=NULL) delete myFoo;
myFoo = new Foo(fooToStore);
, но это вызывает сбой моей программы, как только вызывается деструктор.Я не уверен, что мой (нетривиальный) деструктор немного глючит (другую проблему здесь не обсуждают) или удаление объекта-члена класса с помощью delete в методе класса вообще запрещено.
Большое спасибо за ваше время и помощь - цените это!Mark