【发布时间】:2011-01-17 16:37:03
【问题描述】:
我最近开始使用 SFML,并注意到没有提供任何类型的“FreeResource”方法。例如,sf::Font 有一个名为LoadFromFile 的函数,但没有释放资源的函数。
我觉得这很奇怪。我错过了什么吗?我唯一的选择是创建一个sf::Font 指针并动态分配和删除它吗?
【问题讨论】:
-
我不知道 SFML。但是考虑
std::vector;您是否需要手动释放这些资源?不,它是在析构函数中完成的。我怀疑你也一样。请注意,在行为方面,将它放在堆栈上与new然后delete没有什么不同。 (除了现在您的代码不太安全。)这称为 RAII。 -
有时我们需要在相同的上下文中使用相同类型的资源,但需要不同的实例。如果我有一个需要更大的
sf::Texture,我不能简单地调整它的大小:我必须delete然后create(...)一个新的。