class A
{
public:
virtual A& a()
{
return *this;
}
};

class B : public A {};

int main()
{
B b = A().a();
}

とするとAをBに変換できないって怒られるけど、いちいちBでもa()をオーバーライドしないとダメ?
理屈は分かるんだけど、継承してるんだから勝手に変換してくれりゃいいのに・・・
↑みたいなことやるのに何か良い方法ないですか?