C++ - 访问私有成员变量的所有函数
C++ - Access All Functions Of Private Member Variable
我觉得这是一个重复/愚蠢的问题,但是,尽管我尽了最大的努力,我不知道谷歌能找到什么。
无论如何,我希望有一个类BigClass
,其中包含另一个类SmallerClass
作为私有成员变量,以便使用BigClass
的人无法访问SmallerClass
包含的公共成员变量。
但是,我也希望人们能够通过其公共方法操纵SmallerClass
。我希望能够调用bigClassInstance.SmallerClassMethod()
,而不必在BigClass
内创建一堆方法,这些方法只是在SmallerClass
中调用同名方法。
这可能吗?如果是这样,如何?
注意:我确实考虑过让BigClass
从SmallerClass
继承,但是,这不起作用,因为其他直接访问SmallerClass
的东西需要按原样操作SmallerClass
编辑: 我正在制作一个Collider
类,它或多或少是围绕 Box2D 主体的包装类。我正在与其他人一起工作,我希望他们尽可能避免接触b2Vec2
类,而支持我们正在使用的自定义向量类。Collider
在b2Vec2
s 和我们的向量之间进行转换以保持一致性。
我并没有让这个模糊变得烦人,我只是想概括它,这样我就不会得到只有 Box2D 的答案,并且无法将我学到的知识应用于不同的问题
您几乎只能使用以下其中一项:
- 在 BigClass 中编写一个 getter,返回对 SmallClass 的引用(并通过该引用调用方法)。
- 在 BigClass 中编写小的内联方法,将调用扔到 SmallClass 中(可能是最简单和最好的解决方案)。
- 使用继承(这可能是也可能不是一个好主意,具体取决于方案)
相关文章:
- 未使用的C++未优化的静态成员函数/变量
- 内联函数/变量的外部链接
- 同一函数中的静态函数变量初始化顺序
- 将非静态成员函数C 的使用无效,而将成员功能作为函数变量
- 如何从doxygen输出中排除类的无证件成员函数/变量
- 如何在LUA C API中分配全局LUA函数变量
- 如何将函数变量传递给C lambda函数
- 通过另一个C++函数更改函数变量
- c++11 lambda 真的支持闭包吗?函数变量中存在语义冲突
- C++:静态成员不能在声明时定义,但静态函数变量可以?
- apache-frift是否支持函数变量作为参数
- 类函数/变量在使用之前必须声明
- 函数变量去哪里
- 无法使用函数变量?错误表达式必须具有类类型
- 如何在main中使用函数变量
- 每当尝试打印函数变量时,C++ cout 错误
- 是否存在查看成员函数/变量的整洁等效项
- 访问友元类之间的函数变量
- 函数到函数变量
- 一个定义规则是否强制创建一个静态函数变量