Здравствуйте,
может кто-нибудь просвятить меня в следующем вопросе:
Каким образом возможно(и возможно ли) осуществить приведение вниз по иерархии наследования от предка, наследование от которого было ВИРТУАЛЬНЫМ?
что-то вроде этого:
class Base
{
...
virtual void func (Base&)=0;
};
class Descendant : virtual public Base
{
virtual void func (Base& base)
{
...
(Descendant*)&base;
...
}
};
а в результате(MSVC):
...\point.h(97) : error C2635: cannot convert a 'VectorGraphics::Object<3,float>*' to a 'VectorGraphics::ElementaryObject<3,float>*'; conversion from a virtual base class is implied
И ещё: почему dynamic_cast не работает В ПРИНЦИПЕ? При любой попытке использования dynamic_cast приложение завершается по исключению.