我正在用OpenGL编写程序。有一个Gfx
类,它包含一个OpenGL上下文并包装OpenGL库。
还有一个Texture
类包含OpenGL纹理名称(包括生成和删除)。 Texture
类自然具有对Gfx
类的隐式依赖。但我想要RAII,没有指针,因此认为Texture
类必须是公开访问的。
表达对构造的Gfx
实例的依赖关系的最简洁方法是什么?
答案 0 :(得分:0)
假设没有上下文就不能存在纹理,看起来构造函数参数在这种情况下是正确的,可能是std::shared_ptr<Gfx>
(希望这可以从你的无指针策略中解脱 - 我认为它是C ++构造)。这样,只要至少有一个纹理没有处理,Gfx就会停留。