There shouldn’t be a circular dependency by including that header in your .cpp, as long as your headers have #pragma once at the top.
As I say, the compiler needs to know the complete type of ABaseCharacter in order to do the pointer assignment - a forward declaration won’t suffice.