class hoge : public base
{
private:
base* m_base;
};

これって循環ですか?