dynamic_cast vyhazuje std::bad_cast, pokud castujete reference. A pointery byste castovat neměl, pokud k tomu nemáte speciální důvod.
Je pravda, že u C++ je s IDE problém, protože jich spousta není nic lepšího než editor se zvýrazněním syntaxe, ale třeba s KDevelopem taky nemusím řešit includy, protože je doplňuje sám.

