Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct Context {
- virtual ~Context() = default;
- };
- struct VideoContext : public Context {};
- struct AudioContext : public Context {};
- struct VideoContextA1 : public VideoContext {
- int mA;
- float mB;
- };
- struct VideoContextA2 : public VideoContext {
- int mC;
- float mD;
- };
- class A {
- virutal int foo(Context* context) = 0;
- };
- class A1 : public A {
- int foo(Context* context) override {
- // dynamic cast
- auto* ctx = dynamic_cast<VideoContextA1*>(context);
- // .... bla bla bla
- }
- };
- class A2 : public A {
- int foo(Context* context) override {
- // dynamic cast
- auto* ctx = dynamic_cast<VideoContextA2*>(context);
- // .... bla bla bla
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement