[comp.lang.c++] Multiple inheritance: should this work?

ahuttune@niksula.hut.fi (Ari Juhani Huttunen) (05/27/90)

The following program compiles using g++ 1.36 but core dumps. The idea
is to have several classes accessed through a base-class pointer. The
base class defines a procedure "foo" that is re-defined in every child
class using multiple inheritance. If this is not the right way, I would 
like to hear a better one. Please send replies by mail because I won't
be able to read them until these news have expired..

------clip-------clip-----clip-----
#include <stdio.h>

class foo_class1
{ 
 public: foo() {printf("A procedure..(1)\n");}
};

class foo_class2
{ 
 public: foo() {printf("A procedure..(2)\n");}
};

class base_class
{ 
 public: virtual foo() = 0;
};

class derived_class1: public base_class, public foo_class1
{
};

class derived_class2: public base_class, public foo_class2
{
};

main()
{
  base_class *tmp1 = new derived_class1;
  base_class *tmp2 = new derived_class2;
  tmp1->foo();
  tmp2->foo();
}
-----clip----clip----------clip---
--
  ___  ___  ___  ___  ___  ___  ___  ___  ___  Fair is foul,
__I I__I I__I I__I I__I I__I I__I I__I I__I I    and foul is fair:
 Ari Huttunen    (ahuttune@niksula.hut.fi)  I  Hover through the fog
____________________________________________I    and filthy air. <Macbeth>