我正在用OpenGL编写程序。有一个Gfx类,它包含一个OpenGL上下文并包装OpenGL库。
还有一个Texture类,用于包装OpenGL纹理名称(包括生成和删除)。 Texture类自然对Gfx类具有隐式依赖性。但是我想要RAII,没有指针,因此认为Texture类必须是可公开访问的。

在构造的Gfx实例上表达依赖性的最干净的方法是什么?

最佳答案

假设纹理在没有上下文的情况下就不存在,那么在这种情况下,似乎构造函数参数是正确的,可能是std::shared_ptr<Gfx>(希望从无指针策略中删除该参数-我认为它是C++构造)。只要没有设置至少一个纹理,Gfx就会持续存在。

09-07 08:18