1 %module namespace_virtual_method
2 
3 %warnfilter(515);
4 
5 
6 %inline %{
7 
8 namespace A {
9    namespace B {
10        class Foo;
11    }
12    namespace C {
13        class Foo {
14 	public:
Foo()15            Foo() { };
~Foo()16            virtual ~Foo() { };
17            virtual int bar(const A::B::Foo &x) = 0;
18        };
19    }
20 }
21 
22 namespace A {
23    namespace C {
24         class Spam : public Foo {
25 	public:
Spam()26             Spam() { }
~Spam()27             virtual ~Spam() { }
bar(const B::Foo & x)28             virtual int bar(const B::Foo &x) { return 1; }
29         };
30    }
31 }
32 
33 %}
34 
35 %{
36 namespace A {
37    namespace B {
38          class Foo { };
39    }
40 }
41 %}
42