Multiple inheritance (Was: OOP)_(re)

Wed, 28 May 1997 20:46:54 -0400 (EDT)


On Wed, 28 May 1997, The African Chief wrote:

> If it can be done, then it should be done. However, I would advise
> against using it in the RTS or in any UNIT supplied as part of the GPC
> distribution. Let us make it's use completely optional (i.e., people can
> use it in their own programs if they want, but GPC is itself free from it.

Well, removing GOTO is another thing that could be done. Maybe we
shouldn't do that, but *please*, let's not add multiple inheritance to a
language whose goal is to be the Right Thing and to be simple. Do you know
how many pages there is in the C++ standard? Its something in excess of a
*thousand*. Do we want *that*? Also note that Java has been widely
recognized as "C++ as it should have been" (by Bjarne Stroustrup among
others, the designer of C++), and Java *doesn't* have multiple
inheritance.

> I think this is better than using MI. BP seems to have set the trend to
> have an almost useless ultimate ancestor for an object heirarchy. I
> personally do not agree with that philosophy. 

Why do you disagree? I really don't see what a TWindow object and a
TString object has in common that should be in TObject! BP didn't set that
trend BTW. The Smalltalk anscestor object doesn't do *ANYTHING*. BP's
constructor fills the object with zeros for instance. :-) The use is in
having the POBject pointer type handy, that can handle *any* objects. You
have a single TCollection that can handle both TWindow objects and TString
objects, even a *MIX* of those! *This* is what TObject is there for, not
have a heap of methods.

For instance, I tried to make my class as much object-oriented as
possible, free of any procedures. For example, Abstract has been made a
method of TObject and a similar NoStream method has been added to prevent
streaming of non-streamable objects (this is very quite not final,
susceptible to removal).

A thing that would be better to have than multiple inheritance would be
pure virtual methods. Would allow me to remove that Abstract method! ;-)

Pierre Phaneuf

"The use of COBOL cripples the mind; its teaching should, therefore, be
regarded as a criminal offense." - Edsger W. Dijkstra.


Pierre Phaneuf (pp@dilu.ml.org)

HTML conversion by Lluís de Yzaguirre i Maura
Institut de Lingüística Aplicada - Universitat "Pompeu Fabra"
e-mail: de_yza@upf.es