Hola,
Bueno la duda es esa, cual es la diferencia de crear un objeto utilizando:
CLASE oObjeto;
oObjeto.metodo();
Con esta otra:
CLASE *oObjeto = new CLASE();
oObjeto->metodo();
Si por favor me pudieran explicar tal diferencia a nivel de memoria, de antemano gracias!!!, con eso me refiero a HEAP, STACK, gracias!
¡Buenas!
La diferencia es que cuando estas creando un objeto de la clase en tiempo de compilacion, en el marco de llamada a la funcion que contiene el objeto, estas tomando memoria del stack del programa para almacenarlo (o para almacenar su direccion). Si el objeto lo creas en tiempo de ejecucion, la memoria la tomas del heap.
Supongo que alguien te podra dar informacion mas concreta, pero la idea es esa.
¡Saludos!
Si lo creas como puntero, eres tú el que le asigna la memoria y, por ende, eres tú el que debes eliminarlo con un "delete" cuando ya no te haga falta. Si no lo creas como puntero, se crea y se destruye automáticamente.