在我的代码中,我有一个动态分配的普通指针
class Texture
{
//code...
SDL_Texture* m_texture;
};
我从 Texture 类分配了 SDL_Texture* 的 Init() 函数,并且析构函数释放了内存。
然而,这被证明是一个问题。我必须使用 shared_ptr,因为我对不同的对象使用相同的纹理,这将被破坏,因此不允许我正确显示它们(在向量中的第一个对象被破坏后,纹理(为所有相同类型的对象共享) ) 离开了)。
所以我决定使用 shared_ptr,但我有一个问题 - 我不知道如何为 shared_ptr's 分配一些东西:
//Old code:
m_texture = loadTexture();
//New code:
class Texture
{
std::shared_ptr<SDL_Texture> m_texture;
};
//code...
m_texture = loadTexture(); // Error! No assignment operator
我试过 .get() 函数,但它是右值,所以我不能给它分配任何东西。有任何想法吗?
提前致谢。