C++/OOP:对其他类具有隐式依赖关系的类

C++ / OOP: Class with implicit dependency on other class

本文关键字:依赖 关系 OOP 其他 C++      更新时间:2023-10-16

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

表达对构造的Gfx实例的依赖关系的最干净的方法是什么?

假设纹理在没有上下文的情况下不可能存在,那么在这种情况下,构造函数参数似乎是正确的,可能是std::shared_ptr<Gfx>(希望这可以从无指针策略中解脱出来——我认为它是C++构造)。这样,只要至少有一个纹理未被处理,Gfx就会一直存在。