C++ - 访问私有成员变量的所有函数

C++ - Access All Functions Of Private Member Variable

本文关键字:函数 变量 成员 访问 C++      更新时间:2023-10-16

我觉得这是一个重复/愚蠢的问题,但是,尽管我尽了最大的努力,我不知道谷歌能找到什么。

无论如何,我希望有一个类BigClass,其中包含另一个类SmallerClass作为私有成员变量,以便使用BigClass的人无法访问SmallerClass包含的公共成员变量。

但是,我也希望人们能够通过其公共方法操纵SmallerClass。我希望能够调用bigClassInstance.SmallerClassMethod(),而不必在BigClass内创建一堆方法,这些方法只是在SmallerClass中调用同名方法。

这可能吗?如果是这样,如何?

注意:我确实考虑过让BigClassSmallerClass继承,但是,这不起作用,因为其他直接访问SmallerClass的东西需要按原样操作SmallerClass

编辑: 我正在制作一个Collider类,它或多或少是围绕 Box2D 主体的包装类。我正在与其他人一起工作,我希望他们尽可能避免接触b2Vec2类,而支持我们正在使用的自定义向量类。Colliderb2Vec2s 和我们的向量之间进行转换以保持一致性。

我并没有让这个模糊变得烦人,我只是想概括它,这样我就不会得到只有 Box2D 的答案,并且无法将我学到的知识应用于不同的问题

您几乎只能使用以下其中一项:

  • 在 BigClass 中编写一个 getter,返回对 SmallClass 的引用(并通过该引用调用方法)。
  • 在 BigClass 中编写小的内联方法,将调用扔到 SmallClass 中(可能是最简单和最好的解决方案)。
  • 使用继承(这可能是也可能不是一个好主意,具体取决于方案)