D
Dave Rahardja
Is it safe to use static_cast to downcast from a virtual base class?
For example,
class V {};
class A: public virtual V {};
class B: public virtual V {};
class C: public A, public B;
void fn(V& v)
{
A& a = static_cast<A&>(v);
B& b = static_cast<B&>(v);
C& c = static_cast<C&>(v);
}
Assuming that the parameter to fn() is an instance of C, of course.
Or do I have to use dynamic_cast? When is static_cast not sufficient?
-dr
For example,
class V {};
class A: public virtual V {};
class B: public virtual V {};
class C: public A, public B;
void fn(V& v)
{
A& a = static_cast<A&>(v);
B& b = static_cast<B&>(v);
C& c = static_cast<C&>(v);
}
Assuming that the parameter to fn() is an instance of C, of course.
Or do I have to use dynamic_cast? When is static_cast not sufficient?
-dr