次のような状況があります。
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 内からではなく B 内から A のすべてのメソッドにアクセスできることが確実になるまで、そのルートをたどりたくありません。 MyFramework の外部。
言い換えると、フレームワークはすべて 1 つの名前空間内で作成され、各クラスには、フレームワークを使用する一般の人々に役立つメソッドがあります。ただし、各クラスには、パブリック API を複雑にするが、フレームワークが適切に機能するために必要ないくつかのメソッドもあります。