add multiple_inheritance example from Salvaire. It's working

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@6577 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Marcelo Matus 2004-11-01 10:47:44 +00:00
commit f4646cc5a0
5 changed files with 77 additions and 0 deletions

View file

@ -6,6 +6,7 @@ funcptr
import
mpointer
multimap
multiple_inheritance
pointer
reference
simple

View file

@ -0,0 +1,19 @@
TOP = ../..
SWIG = $(TOP)/../swig
CXXSRCS =
TARGET = example
INTERFACE = example.i
LIBS =
all::
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' perl5_cpp
static::
$(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \
TARGET='myperl' INTERFACE='$(INTERFACE)' perl5_cpp_static
clean::
$(MAKE) -f $(TOP)/Makefile perl5_clean
check: all

View file

@ -0,0 +1,32 @@
/* File : example.h */
#include <iostream>
using namespace std;
class Bar
{
public:
virtual void bar ()
{
cout << "bar" << endl;
}
};
class Foo
{
public:
virtual void foo ()
{
cout << "foo" << endl;
}
};
class Foo_Bar : public Foo, public Bar
{
public:
virtual void fooBar ()
{
cout << "foobar" << endl;
}
};

View file

@ -0,0 +1,9 @@
/* File : example.i */
%module example
%{
#include "example.h"
%}
/* Let's just grab the original header file here */
%include "example.h"

View file

@ -0,0 +1,16 @@
# file: runme.pl
# This file test multiple inheritance
use example;
$foo_Bar = new example::Foo_Bar();
print "must be foo: ";
$foo_Bar->foo();
print "must be bar: ";
$foo_Bar->bar();
print "must be foobar: ";
$foo_Bar->fooBar();