Manchmal möchte ich die Konstruktion von Objekten, die eine Klasse besitzt, an eine separate Funktion delegieren. Etwas wie
Vertex* new_vertex(const Options& options) {
// do stuff...
return new Vertex(...);
}
wobei die Funktion nur innerhalb einer Klasse verwendet werden soll, die die besitzt Vertex
. Es ist klar, dass diese Funktion zu Verwirrung führen kann, daher möchte ich sie so klar wie möglich machen. Gibt es eine Namenskonvention für solche Funktionen?
unique_ptr
indem sie seine release()
Funktion aufrufen , und verwenden die rohen Zeiger wie auf die alte Weise.
// FIXME: Allocation of raw pointer
?
new_vertex
damit ich weiß, dass das Objekt neu geprägt wurde. Man könnte es Create_new_vertex
als besonders klar bezeichnen. Was die Idee betrifft, dass Sie den Heap-Speicher nicht ohne intelligente Zeiger verwalten sollten, haben Sie nie die Wahrheit darin gesehen. Wenn Sie den Heap-Speicher ohne sie nicht verwalten können, haben Sie auch kein Geschäft damit, den Heap-Speicher mit ihnen zu verwalten!
// TODO: Fix allocation of raw pointer.