git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8249 626c5289-ae23-0410-ae9c-e8d60b6d4f22
62 lines
808 B
OpenEdge ABL
62 lines
808 B
OpenEdge ABL
%module abstract_inherit
|
|
|
|
%warnfilter(SWIGWARN_TYPE_ABSTRACT) Spam;
|
|
%warnfilter(SWIGWARN_TYPE_ABSTRACT) Bar;
|
|
|
|
%inline %{
|
|
|
|
class Foo {
|
|
public:
|
|
virtual ~Foo()
|
|
{
|
|
}
|
|
|
|
virtual int blah() = 0;
|
|
};
|
|
|
|
class Bar : public Foo { };
|
|
|
|
class Spam: public Foo {
|
|
public:
|
|
Spam() { }
|
|
};
|
|
|
|
|
|
template <class Type>
|
|
class NRFilter {
|
|
public:
|
|
virtual ~NRFilter()
|
|
{
|
|
}
|
|
|
|
protected:
|
|
virtual void do_filter() = 0;
|
|
};
|
|
|
|
template <class Type>
|
|
class NRRCFilter : public NRFilter<Type>
|
|
{
|
|
};
|
|
|
|
|
|
template <class Type>
|
|
class NRRCFilterpro : protected NRFilter<Type>
|
|
{
|
|
};
|
|
|
|
|
|
template <class Type>
|
|
class NRRCFilterpri : private NRFilter<Type>
|
|
{
|
|
};
|
|
|
|
%}
|
|
|
|
%template(NRFilter_i) NRFilter<int>;
|
|
|
|
%template(NRRCFilter_i) NRRCFilter<int>;
|
|
|
|
%template(NRRCFilterpro_i) NRRCFilterpro<int>;
|
|
|
|
%template(NRRCFilterpri_i) NRRCFilterpri<int>;
|
|
|