A veces quiero delegar la construcción de objetos que posee una clase a una función separada. Algo como
Vertex* new_vertex(const Options& options) {
// do stuff...
return new Vertex(...);
}
donde la función solo está destinada a ser utilizada dentro de una clase que posee el Vertex
. Claramente, esta función puede causar cierta confusión de pérdida de memoria, por lo que quiero dejarlo lo más claro posible. ¿Existe una convención de nomenclatura para tales funciones?
unique_ptr
llamando a su release()
función, y usar los punteros en bruto como en las viejas formas.
// FIXME: Allocation of raw pointer
?
new_vertex
así que sé que el objeto está recién acuñado. Podrías llamarlo Create_new_vertex
para ser más claro. En cuanto a la idea de que no se debe gestionar la memoria heap sin punteros inteligentes, nunca había visto la verdad porque - de hecho, si usted no puede manejar la pila de memoria y sin ellos, no tienes negocio la gestión de memoria del montón con ellos, ya sea!
// TODO: Fix allocation of raw pointer.