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_ptrindem sie seine release()Funktion aufrufen , und verwenden die rohen Zeiger wie auf die alte Weise.
// FIXME: Allocation of raw pointer?
new_vertexdamit ich weiß, dass das Objekt neu geprägt wurde. Man könnte es Create_new_vertexals 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.