3

问题是:我正在使用 SFML 制作游戏,我想要一个 sf::Drawable* 的向量,所以我可以简单地做 windowManager.add(randomGameSprite),但我遇到的问题是我希望能够拥有它,这样我就可以删除 randomGameSprite 而无需手动从窗口中删除指针。有没有办法让它在尝试绘制之前检查对象是否存在?

我正在使用 C++11,但是从我的尝试来看,智能指针在这方面并没有太大帮助。我尝试使用 std::shared_ptr,但它使可绘制对象保持活力。

4

1 回答 1

8

你可以存储weak_ptr<T>在你的向量中。弱指针不会使对象保持活动状态:如果指向对象的所有共享指针都超出范围,则弱指针将自动过期。

于 2013-02-13T17:43:38.893 回答