| %module(directors="1") director_simple |
| |
| %feature("director") IntBase; |
| %feature("director") BoolBase; |
| |
| %inline %{ |
| class IntBase { |
| public: |
| virtual ~IntBase() {} |
| IntBase(int i = 3) { (void)i; } |
| virtual int apply(int x) const { return x * 2; } |
| }; |
| |
| class IntDerived : public IntBase { |
| public: |
| virtual int apply(int x) const { return x * 3; } |
| }; |
| |
| int apply(const IntBase& b, int x) |
| { |
| return b.apply(x); |
| } |
| |
| class BoolBase { |
| public: |
| virtual ~BoolBase() {} |
| BoolBase() {} |
| virtual bool apply(bool a, bool b) const = 0; |
| }; |
| |
| class BoolDerived : public BoolBase { |
| public: |
| virtual bool apply(bool a, bool b) const { return a != b; } |
| }; |
| |
| bool apply(const BoolBase& base, bool a, bool b) |
| { |
| return base.apply(a, b); |
| } |
| |
| %} |
| |