Ventajas de del uso de new ?

Iniciado por HardForo, 27 Abril 2016, 15:14 PM

0 Miembros y 1 Visitante están viendo este tema.

HardForo

Eso mismo, quisiera saber cuales son las ventajas siendo que en C++ no es necesario realmente para instanciar clases por ejemplo
HardForo:  foro de Hardware y programación

Se buscan Mods y colaboradores *

class_OpenGL

Se usa new para reservar memoria dinámica. No tienen que ser para un objeto, puedes reservar memoria para un entero (por ejemplo, int* variable = new int). En C++, sin embargo, hay un conjunto de librerías llamado STL, la cual te permite manejar la memora dinámica de forma mucho más cómoda.

- La ventaja del operador new sobre la STL es que new es muy general, y lo puedes usar para crear cosas muy específicas. La desventaja es que luego tienes que liberar la memoria con delete o con delete[].

- La ventaja de usar la STL frente al operador new es que es muchísimo más cómodo manejar la memoria dinámica, porque ya tienes los métodos definidos. Por ejemplo, para crear una lista doblemente enlazada puedes usar la clase std::list. Esta clase tiene estos métodos (entre otros): push_back, push_front, pop_back, pop_front, insert, erase... Con estos métodos es mucho más cómodo trabajar y encima no te tienes que preocupar por liberar la memoria, puesto que al salir de una función se llama al destructor y la memoria se libera automáticamente.

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL

HardForo

Amigo @class_OpenGL primero que todo gracias por responder  ;)

Investigaré lo que me dices pero cuando haces new int por ejemplo definitivamente estas creando un objeto wrapper sobre un entero, al menos eso leí sobre boxing y unboxing en C# y Java.

Me sirve que me hayas confirmado que delete solo es obligatorio si tienes punteros y es la razon de que exista un destructor (~) : te da la posibilidad de usar delete al terminar la instancia.

Nuevamente gracias
HardForo:  foro de Hardware y programación

Se buscan Mods y colaboradores *

HardForo

CitarLa ventaja de usar la STL frente al operador new es que es muchísimo más cómodo manejar la memoria dinámica, porque ya tienes los métodos definidos. Por ejemplo, para crear una lista doblemente enlazada puedes usar la clase std::list. Esta clase tiene estos métodos (entre otros): push_back, push_front, pop_back, pop_front, insert, erase... Con estos métodos es mucho más cómodo trabajar y encima no te tienes que preocupar por liberar la memoria, puesto que al salir de una función se llama al destructor y la memoria se libera automáticamente.

Me parecia....... porque cuando he usado colas no vi que hubiera forma de liberar manualmente la memoria

Otro buen dato  ;)
HardForo:  foro de Hardware y programación

Se buscan Mods y colaboradores *

class_OpenGL

Si quieres consultar los métodos de cualquier clase estándar de C++ puedes mirar esta página:

http://www.cplusplus.com/reference/

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL