Very simple question :o)
-
Hi, I have something like: Object* MyClass::MyFunction(int value) { Object* pObj = new Object(value); if(!pObj) return NULL; else return pObj; } do I have to delete pObj? and if I have to delete it, how can I do it? Do I need to call a delete everytime everywhere? Thanks Everything's beautiful if you look at it long enough...
-
Hi, I have something like: Object* MyClass::MyFunction(int value) { Object* pObj = new Object(value); if(!pObj) return NULL; else return pObj; } do I have to delete pObj? and if I have to delete it, how can I do it? Do I need to call a delete everytime everywhere? Thanks Everything's beautiful if you look at it long enough...
You could have written:
CObject* MyClass::MyFunction(int value)
{
return new Object(value);
}As
new
returns NULL if the allocation fails. That said, what you are doing is bad coding practice as whoever calls the function needs to remember to delete the returned pointer, and its possible to use a function in such a way that you don't get a copy of the returned pointer, as it would get assigned to a temporary. So its very bad practice. See if you can do it in some other way. Roger Allen Sonork 100.10016 Were you different as a kid? Did you ever say "Ooohhh, shiny red" even once? - Paul Watson 11-February-2003 -
Hi, I have something like: Object* MyClass::MyFunction(int value) { Object* pObj = new Object(value); if(!pObj) return NULL; else return pObj; } do I have to delete pObj? and if I have to delete it, how can I do it? Do I need to call a delete everytime everywhere? Thanks Everything's beautiful if you look at it long enough...