这是思考智能指针和使用原始指针进行非所有权的正确方法吗?
class DisplayObject {
DisplayObject* Parent;
};
class DisplayObjectContainer: public DisplayObject {
std::vector<DisplayObject*> Children;
};
class Stage {
std::vector<std::unique_ptr<DisplayObject>> DisplayObjects;
};
Run Code Online (Sandbox Code Playgroud)
使用
make_unique<DisplayObject>
或创建项目
make_unique<DisplayObjectContainer>
Stage将拥有所有DisplayObject类,但是会有一个DisplayObjectContainer指向Stage拥有的对象的原始指针.
DisplayObject也将有一个家长(可以nullptr).
当我将项目添加到vector(DisplayObjects.back().get())并大量使用时,我也使用Stage的DisplayObjects并获取指向它的对象的指针std::move
这是使用智能指针和所有权的正确方法吗?
| 归档时间: |
|
| 查看次数: |
133 次 |
| 最近记录: |