クラスからオブジェクトを返すとき、いつメモリを解放するのが適切ですか?
例、
class AnimalLister
{
public:
Animal* getNewAnimal()
{
Animal* animal1 = new Animal();
return animal1;
}
}
Animal Lister のインスタンスを作成し、そこから Animal 参照を取得した場合、どこで削除すればよいですか?
int main() {
AnimalLister al;
Animal *a1, *a2;
a1 = al.getNewAnimal();
a2 = al.getNewAnimal();
}
ここでの問題は、AnimalLister には、作成された動物のリストを追跡する方法がないため、そのようなコードのロジックを変更して、作成されたオブジェクトを削除する方法があることです。