Si su compilador compatible con C++ 11 puede utilizar unique_ptr aquí:
#include <iostream>
#include <memory>
using namespace std;
class Cat {
public:
Cat() {
cout << "Cat created" << endl;
}
~Cat() {
cout << "Cat destroyed" << endl;
}
void eatFood() {
cout << "Cat is eating food" << endl;
}
};
unique_ptr<Cat> makeCat() {
unique_ptr<Cat> lady(new Cat);
return lady;
}
int main() {
unique_ptr<Cat> molly = makeCat();
molly->eatFood();
return 0;
}
Ahora, usted no tiene que preocuparse acerca de cómo eliminar objeto creado. Se eliminará tan pronto como el puntero molly salga del alcance:
Cat created
Cat is eating food
Cat destroyed
En el ejemplo falta el tipo de devolución para makeCat(). – pascal
Y tiene más errores. Si desea saber acerca de un error en tiempo de compilación, al menos debe publicar código compilable. – sbi
Kevin: lee sobre STL auto_ptr y aumenta shared_ptr. –