cast.cpp
443 Bytes
class Storable {
public:
virtual ~Storable(){};
};
class Component : public virtual Storable
{ /* ... */ };
class Receiver : public Component
{ /* ... */ };
class Transmitter : public Component
{ /* ... */ };
class Radio : public Receiver, public Transmitter
{ /* ... */ };
int main()
{
Radio r;
Storable* s = &r;
Transmitter* t = dynamic_cast<Transmitter*> (&r);
Component* c = t;
Radio* rptr = dynamic_cast<Radio*>(c);
}