Patrones de gestión de memoria en C ++
Creo que tengo una experiencia considerable con patrones de diseño normal (funcional), como se describe, p. Ej. enla pandilla de cuatro libros, que utilicé principalmente en java y c #. En estos idiomas "administrados", esto es prácticamente todo lo que necesita saber para realizar su trabajo.
Sin embargo, en el mundo de C ++, el desarrollador también tiene el control de cómo se asignan, pasan y eliminan todos los objetos. Entiendo los principios (leoStroutrup entre otros textos), pero todavía me cuesta mucho decidir qué mecanismo es el mejor para un escenario determinado, y aquí es donde una cartera de patrones de diseño relacionados con la memoria sería útil.
Por ejemplo, ayer tuve que crear una clase.Results
, que era un contenedor para algunos objetos y una colección (std :: vector en este caso) de otro tipo de objetos. Así que hay algunas preguntas de diseño que realmente no pude responder:
Por supuesto, los punteros inteligentes son geniales y lo que no, pero crean desorden sintáctico y no estoy convencido de que usar malloc para cada objeto sea un enfoque óptimo.
Agradecería las respuestas a los puntos específicos anteriores, pero aún más por algunos textos más largos y más generales sobre patrones de diseño relacionados con la memoria, ¡para que pueda resolver los problemas que también tendré los lunes!