これは、スマート ポインターについて考え、非所有に生のポインターを使用する正しい方法ですか?
class DisplayObject {
DisplayObject* Parent;
};
class DisplayObjectContainer: public DisplayObject {
std::vector<DisplayObject*> Children;
};
class Stage {
std::vector<std::unique_ptr<DisplayObject>> DisplayObjects;
};
make_unique<DisplayObject>
アイテムはまたはを使用して作成されます
make_unique<DisplayObjectContainer>
Stage はすべてのDisplayObject
クラスを所有しますが、DisplayObjectContainer
Stage が所有するオブジェクトへの生のポインターを持ちます。
DisplayObject
Parent ( の場合もありますnullptr
) もあります。
DisplayObjects.back().get()
また、ステージの DisplayObjects を取得し、項目をベクター ( )に追加してそのオブジェクトへのポインターを取得し、std::move
これは、スマート ポインターと所有権を使用する正しい方法ですか?