質問です。

class A
{
protected:
void Hoge() {}
};

class B : public A
{
};

class C : public A
{
public:
void Func(B& b) {
b.Hoge(); // <- これがエラーになる
}
};

こんな感じのソースで、
C::Func() の中から、B::Hoge() を呼び出そうとしたのですが
コンパイルエラーになってしまいました。(VC6)
CはAを継承しているので、A::Hoge()そのものは呼び出せると
思っていたのですがダメなんでしょうか?