swig/Examples/test-suite/inherit_missing.i
William S Fulton 5fbd413e04 Fix dodgy code
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8363 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-01-10 23:25:40 +00:00

51 lines
812 B
OpenEdge ABL

// Tests handling of inheritance when a base class isn't provided to SWIG
%module inherit_missing
%warnfilter(402);
%{
/* Define the class internally, but don't tell SWIG about it */
class Foo {
public:
virtual ~Foo() {}
virtual char *blah() {
return (char *) "Foo::blah";
}
};
%}
/* Forward declaration. Says that Foo is a class, but doesn't provide a definition */
class Foo;
%newobject new_Foo;
%delobject delete_Foo;
%inline %{
class Bar : public Foo {
public:
virtual ~Bar() {}
virtual char *blah() {
return (char *) "Bar::blah";
};
};
class Spam : public Bar {
public:
virtual char *blah() {
return (char *) "Spam::blah";
};
};
Foo *new_Foo() {
return new Foo();
}
void delete_Foo(Foo *f) {
delete f;
}
char *do_blah(Foo *f) {
return f->blah();
}
%}