Autor
|
Tema: Ventajas de del uso de new ? (Leído 1,983 veces)
|
HardForo
Desconectado
Mensajes: 219
HardForo.com
|
Eso mismo, quisiera saber cuales son las ventajas siendo que en C++ no es necesario realmente para instanciar clases por ejemplo
|
|
« Última modificación: 28 Abril 2016, 00:55 am por boctulus »
|
En línea
|
HardForo: foro de Hardware y programación Se buscan Mods y colaboradores *
|
|
|
class_OpenGL
Desconectado
Mensajes: 437
Si usas Direct3D, no eres mi amigo :P
|
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.
|
|
|
En línea
|
| Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL |
|
|
|
|
HardForo
Desconectado
Mensajes: 219
HardForo.com
|
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
|
|
|
En línea
|
HardForo: foro de Hardware y programación Se buscan Mods y colaboradores *
|
|
|
HardForo
Desconectado
Mensajes: 219
HardForo.com
|
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
|
|
|
En línea
|
HardForo: foro de Hardware y programación Se buscan Mods y colaboradores *
|
|
|
class_OpenGL
Desconectado
Mensajes: 437
Si usas Direct3D, no eres mi amigo :P
|
Si quieres consultar los métodos de cualquier clase estándar de C++ puedes mirar esta página: http://www.cplusplus.com/reference/
|
|
|
En línea
|
| Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL |
|
|
|
|
|
|