我有以下情况:
namespace MyFramework {
class A {
void some_function_I_want_B_to_use() {}
};
class B {
B() {
some_function_I_want_B_to_use() {}
}
};
}
我希望它some_function_I_want_B_to_use
在命名空间之外不可见MyFramework
,但我确实希望它对 MyFramework 内部的任何人都可见(或者,只对 B 类可见也可以)。我有很多这样的方法,是从 MyFramework 的公共 API 中隐藏它们以使所有类MyFramework
成为朋友的唯一方法吗?我也在考虑将所有“低级”类放在 B 中,但我不想走这条路,直到我确定它能够从 B 内部访问 A 的所有方法,但不是从在 MyFramework 之外。
重申一下,我有一个在一个命名空间中创建的框架,每个类都有对使用该框架的公众有用的方法。但是,每个类也有一些使公共 API 复杂化但框架正常运行所必需的方法。