我有一个类TileManager管理对象的生命周期,因此在它们上保存一个 shared_ptr :
class TileManager {
private:
std::vector<std::shared_ptr<const Tile>> tiles;
}
现在我有另一个类Map它包含对TileManager管理的对象的非拥有引用:
class Map {
private:
std::vector<std::weak_ptr<const Tile>> tiles;
}
我的问题是:我不希望Map类能够操纵指向Tile的智能指针。因此,我想在向量const 中创建指针:
class Map {
private:
std::vector<const std::weak_ptr<const Tile>> tiles;
}
不幸的是,不可能将 const 对象放入 STL 容器中。
有人知道解决方案吗?也许是完全不同的设计?