#include "bar.h" | |
class Spam : public Bar { | |
public: | |
Spam() { } | |
~Spam() { } | |
virtual void A() { | |
printf("I'm Spam::A\n"); | |
} | |
void B() { | |
printf("I'm Spam::B\n"); | |
} | |
virtual Base *toBase() { | |
return static_cast<Base *>(this); | |
} | |
virtual Bar *toBar() { | |
return static_cast<Bar *>(this); | |
} | |
static Spam *fromBase(Base *b) { | |
return dynamic_cast<Spam *>(b); | |
} | |
}; | |