From: William S F. <ws...@fu...> - 2008-04-05 20:20:31
|
zy.jiang wrote: > add a directive > likes"%multiinherit(subclass,baseclass1=1,baseclass2...) " ,it shows the > class's base class name,"baseclass1=1" shows that we can extends the > baseclass1 in java,and baseclass2 will be implemented by interface , and > add implementation code in wrap or proxy class! > I just found this in my outbox which should have been sent a week or two ago... The syntax you propose doesn't really fit in with the way %feature works. I propose that C++ base classes that can be treated as interfaces should be flagged with a new 'interface' feature. For example: %feature("interface") Interface1; %feature("interface") Interface2; struct Interface1 { public: void foo() = 0; }; struct Interface2 {}; struct ConcreteBase { public: void bar(); }; struct Derived : Interface1, Interface2, ConcreteBase {}; should then generate the proxy class code for Interface1 and Interface2 as Java interfaces. SWIG should also ensure that Derived uses Interface1 and Interface2 as an interface instead of a base class. William |