最近,我决定是时候深入研究智能指针了。我读到了不同的类型(独特的、共享的、弱的),但我不确定一件事。
假设我有一个班级Player
和一个GameMap
班级。这些类的内容与下一部分无关。我还有一个Engine
类,它表示将包含我的游戏主要组件的对象,如下所示:
class Engine {
public:
Engine();
~Engine();
private:
std::unique_ptr<Player> m_player;
std::unique_ptr>GameMap> m_gamemap;
};
这些是将创建的玩家和游戏地图的唯一实例,并且Engine
拥有它们,并且应该负责它们的分配和删除。因此,aunique_ptr
似乎是这里的不错选择。
现在,我想m_player
在我的GameMap
类中保留一个简单的引用,因为它比将 传递m_player
给需要它的每个函数对我来说更容易。
我的问题是:在类中使用原始指针(通过get()
方法获得)是保持对类中原始指针GameMap
的引用的最佳方式吗?unique_ptr
Engine
我认为我不能使用另一个unique_ptr
指向原始的,因为对于unique_ptr
.