1 %module abstract_access 2 3 %warnfilter(SWIGWARN_LANG_DIRECTOR_ABSTRACT) A; 4 5 %inline %{ 6 class A { 7 public: 8 virtual ~A() 9 { 10 } 11 12 private: 13 virtual int x() = 0; 14 protected: 15 virtual int y() = 0; 16 public: 17 virtual int z() = 0; 18 int do_x() { return x(); } 19 }; 20 21 class B : public A { 22 private: 23 virtual int x() { return y(); } 24 }; 25 26 class C : public B { 27 protected: 28 virtual int y() { return z(); } 29 }; 30 31 class D : public C { 32 private: 33 virtual int z() { return 1; } 34 }; 35 36 %}