Às vezes, quero delegar a construção de objetos que uma classe possui para uma função separada. Algo como
Vertex* new_vertex(const Options& options) {
// do stuff...
return new Vertex(...);
}
onde a função se destina apenas a ser usada dentro de uma classe que possui o Vertex
. Claramente, essa função pode causar alguma confusão de vazamento de memória, por isso quero deixar o mais claro possível. Existe uma convenção de nomenclatura para essas funções?
unique_ptr
chamada de sua release()
função e usar os ponteiros brutos como nos velhos métodos.
// FIXME: Allocation of raw pointer
?
new_vertex
então eu sei que o objeto foi cunhado recentemente. Você poderia chamá-lo Create_new_vertex
para ficar mais claro. Quanto à idéia de que você não deve gerenciar a memória heap sem ponteiros inteligentes, nunca viu a verdade nisso - na verdade, se você não pode gerenciar a memória heap sem eles, também não há negócios em gerenciar a memória heap com eles!
// TODO: Fix allocation of raw pointer.