特定関数だけfriend指定のクラス・関数にpublic許可

friend指定した関数やクラスにメンバ関数の1つだけをpublicとして扱わせたい、と思ったのだけれど、私の知識では以下のような記述で実装するくらいしかできませんでした。

class A     //hogeの使用のみを許可したいクラス
{
public:
private:
};

class B
{
public:
private:
   class C
   {
    public:    //class Bからも呼び出しができるようにpublic
        friend class A;
        T hoge();
    private:
   };
};

今のところこれしかできないんでしょうかねー。まぁ、この記述で可能になるのですごく助かりましたけど(^_^;;。