La gestión de memoria es casi automática en C++ (con algunas advertencias).
La mayoría de las veces no dinámicamente asignar memoria.
Usa variables locales (y variables de miembros normales) y construirán y destruirán automáticamente.
Cuando necesite punteros utilice un puntero inteligente.
Comience con el uso de boost :: shared_pointer <T> en lugar de punteros.
Esto lo llevará por la ruta correcta y dejará de borrar accidentalmente la memoria en el momento equivocado y el 90% de su código se liberará correctamente (desafortunadamente los ciclos causarán un problema (en términos de fugas solamente) y necesitará diseñar en consecuencia (pero tenemos otros punteros inteligentes para hacer frente a los ciclos weak_ptr))
Mi regla fundamental es que una clase nunca contiene un puntero RAW. Siempre use alguna forma de contenedor estándar o un puntero inteligente. Usando estos; las llamadas al destructor se vuelven automáticas.
vez que tenga la sensación de inicio de leer sobre los otros punteros inteligentes y cuándo usarlos:
Smart Pointers: Or who owns you baby?
Esta discusión tiene una gran cantidad de información útil: http://stackoverflow.com/questions/395123/raii-and-smart-punteros-en-c – Manuel
Wow. Pasar de Java a C++ y disfrutarlo. Estoy impresionado. – JesperE
Bueno, pone énfasis en lo correcto, ya que comprender la gestión de recursos es (IMHO) absolutamente fundamental para ser un desarrollador competente de C++. –