私はいくつかのクラスを持っています。1 つのクラスは、それを必要とするすべての人に表示されるはずであり、残りはヘルパー クラス (一部は構造体) であり、プリンシパル クラスのみがアクセスできる必要があります。私はもともとこれをプリンシパル クラス内のネストされたクラスとして実装していましたが、ヘルパー クラスを追加するにつれて、ヘッダー ファイルが煩雑になり始めていました。そのため、ヘルパー クラスを別の名前空間に禁止された名前で配置しましたが、もっと良い方法があるのではないかと思います。匿名の名前空間を使用したいのですが、ヘッダーからヘルパー クラスを取り出すことができません。これは、プリンシパル クラスのメンバー変数として表示されるためです。
これは、現在ヘッダー ファイルに含まれている構成の簡略化されたバージョンで、インクルード ガードを除いたものです。
namespace __TopSecretVisibleNamespace {
class Invisible{
};
}
using namespace __TopSecretVisibleNamespace;
class Visible {
public:
Visible();
private:
Invisible sneaky;
};
何かご意見は?