>>627
class A
{
 virtual B& sage() = 0;
 void proc() { sage().age(); }
};

こっち(参照を返す virtual メソッド)のほうがいいと思う。