Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: HardForo en 27 Abril 2016, 15:14 pm



Título: Ventajas de del uso de new ?
Publicado por: HardForo en 27 Abril 2016, 15:14 pm
Eso mismo, quisiera saber cuales son las ventajas siendo que en C++ no es necesario realmente para instanciar clases por ejemplo


Título: Re: Ventajas de del uso de new ?
Publicado por: class_OpenGL en 27 Abril 2016, 16:04 pm
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.


Título: Re: Ventajas de del uso de new ?
Publicado por: HardForo en 27 Abril 2016, 16:08 pm
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


Título: Re: Ventajas de del uso de new ?
Publicado por: HardForo en 27 Abril 2016, 16:39 pm
Citar
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.

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

Otro buen dato  ;)


Título: Re: Ventajas de del uso de new ?
Publicado por: class_OpenGL en 27 Abril 2016, 17:21 pm
Si quieres consultar los métodos de cualquier clase estándar de C++ puedes mirar esta página:

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