クラスAは、データを取得保持する共通クラス。
クラスBは、Aからデータを受け取って処理するクラス。
Aからデータを受け取るときに、hogeからhogexx(hogeから派生)
というふうにキャスト?しちゃってるんですが、これは良くないのですか?

class A{
public:
hoge* GetData();
};

class B{
public:
A *a;
void xmethod {
hogexx *p=(hogexx*) a->GetData();
}
};