import source from 1.3.40
[external/swig.git] / Examples / test-suite / abstract_inherit.i
1 %module abstract_inherit
2
3 %warnfilter(SWIGWARN_TYPE_ABSTRACT) Spam;
4 %warnfilter(SWIGWARN_TYPE_ABSTRACT) Bar;
5
6 %inline %{
7
8 class Foo {
9 public:
10   virtual ~Foo()
11   {
12   }
13   
14   virtual int blah() = 0;
15 };
16
17 class Bar : public Foo { };
18
19 class Spam: public Foo {
20 public:
21    Spam() { }
22 };
23
24
25 template <class Type>
26 class NRFilter {
27 public:
28   virtual ~NRFilter()
29   {
30   }
31   
32 protected:
33   virtual void do_filter() = 0;
34 };
35
36 template <class Type>
37 class NRRCFilter : public NRFilter<Type>
38 {
39 };
40  
41
42 template <class Type>
43 class NRRCFilterpro : protected NRFilter<Type>
44 {
45 };
46
47
48 template <class Type>
49 class NRRCFilterpri : private NRFilter<Type>
50 {
51 };
52
53 %}
54
55 %template(NRFilter_i) NRFilter<int>;
56
57 %template(NRRCFilter_i) NRRCFilter<int>;
58
59 %template(NRRCFilterpro_i) NRRCFilterpro<int>;
60
61 %template(NRRCFilterpri_i) NRRCFilterpri<int>;
62