クラスが所有するオブジェクトの構築を別の関数に委任したい場合があります。何かのようなもの
Vertex* new_vertex(const Options& options) {
// do stuff...
return new Vertex(...);
}
この関数は、を所有するクラス内でのみ使用することを目的としていVertex
ます。明らかに、この関数はメモリリークを引き起こす混乱を引き起こす可能性があるため、できるだけ明確にしたいと思います。そのような関数の命名規則はありますか?
unique_ptr
そのrelease()
関数を呼び出してを回避し、古い方法のように生のポインターを使用することさえあります。
// FIXME: Allocation of raw pointer
か?
new_vertex
ので、オブジェクトが新しく作成されたことがわかります。よりCreate_new_vertex
明確にするためにそれを呼ぶことができます。あなたはスマートポインタせずにヒープメモリを管理するべきではないという考えについては、その中に真実見たことがない-あなたはヒープメモリを管理することができない場合は、実際にはせずに、それらを、あなたはヒープメモリを管理する一切の事業を得なかっましてどちらかそれら!
// TODO: Fix allocation of raw pointer.