| %module virtual_vs_nonvirtual_base; |
| // Regression test for SF#3124665. |
| %inline { |
| |
| class SimpleVirtual |
| { |
| public: |
| virtual int implementMe() = 0; |
| virtual ~SimpleVirtual() {} |
| }; |
| |
| class SimpleNonVirtual |
| { |
| public: |
| int dummy() { return 0; } |
| virtual ~SimpleNonVirtual() {} |
| }; |
| |
| class SimpleReturnClass |
| { |
| public: |
| SimpleReturnClass(int i) : value(i) {}; |
| int get() const { return value; } |
| private: |
| int value; |
| }; |
| |
| class SimpleClassFail : public SimpleVirtual |
| { |
| public: |
| SimpleClassFail() : inner(10) {} |
| SimpleReturnClass getInner() { return inner; } |
| |
| virtual int implementMe() { return 0; } |
| private: |
| SimpleReturnClass inner; |
| }; |
| |
| class SimpleClassWork : public SimpleNonVirtual |
| { |
| public: |
| SimpleClassWork() : inner(10) {} |
| SimpleReturnClass getInner() { return inner; } |
| |
| virtual int implementMe() { return 0; } |
| private: |
| SimpleReturnClass inner; |
| }; |
| |
| } |