【发布时间】:2016-03-15 03:05:33
【问题描述】:
我正在编写 Java 游戏库的图形代码。我制作了名为com.engine.graphics 的包。在这个包中,我有一个名为VertexArrayObject 的低级类。此类由客户端将使用的“客户端级”类使用;但是,我不想让客户访问VertexArrayObject,因为这只会使他们对我的图书馆的理解复杂化。因此,我给了VertexArrayObject 默认访问说明符;这样,只有 com.engine.graphics 中的类可以访问它,并且还告诉客户他们不需要知道它是什么。
就像 Java 有这个标准约定一样,我认为 C++ 必须有一些标准约定来处理这个问题;但是,我的互联网搜索没有结果。
那么,我的问题是,约定是什么?如果没有,最好的方法是什么?
【问题讨论】:
-
我不认为有什么相同,但是有Friend classes。
-
这取决于客户端类如何使用它们。你能说得更具体点吗?
-
@Galik,假设 com.engine.graphics 中有一个 ShapeRenderer 类,客户可以使用它来绘制基本形状。这个 ShapeRenderer 类以某种与客户端无关的方式使用 VertexArrayObject;因此,我希望客户端能够访问 ShapeRenderer 而不是 VertexArrayObject。
-
嗯,这并不能告诉我比你在问题中已有的更多信息。但是,老实说,您的客户端程序员应该只对您发布的文档进行编程。无论文档中说什么是自找麻烦,任何他们碰巧找到的东西都不管不顾地寻找你的头文件。无论你做什么来拯救他们,他们都可能会给自己带来麻烦。
标签: c++ access-specifier