OOP_(re)
Thu, 29 May 1997 14:10:06 +0200 (MET DST)
According to Pierre Phaneuf:
>
> According to myself (Peter Gerwinski):
> >
> > I don't like that solution either. It makes units compiled with different
> > options *really* incompatible with each other. (Programs using `ClassName'
> > will rely on the function returning the correct result.)
>
> Ok, then make it a program level switch, that doesn't have any effect in
> units... But then, do we need it?
I suggest to forget about the switch and just store a pointer to a string
constant holding the name of the object in the VMT. Since we don't need
to care about a 64k data segment (4GB will be enough for a while), these
few extra bytes are harmless.
> Its the explicit part I'm trying to avoid... I guess this part will be
> compiler dependent, but should be among very few (with the TObject.Init
> constructor).
Whatever we do here, it will be compiler dependent. If we implement some
feature into GPC to select a constructor through a VmtLink, we can be sure
that no other compiler has this.
I do not worry about compiler dependence since all of this is written
especially for GPC - and other compilers which claim to be compatible to
GPC do not exist yet. I *do* worry about portability between the various
platforms GPC runs on.
> > > [...] something like SetTypeOf(P, VMTLink)? ;-)
> >
> > PtrToMyObj^.TypeOf:= TypeOf ( SomeObjectType );
>
> Maybe this would be better... But I don't like this very much either...
What about
AssignType ( MyObj, MyVmtLink );
where MyObj is an object variable (usually a pointer dereference) and
MyVmtLink points to the VMT?
> [...] In general, I'm
> against "magic" things, like the New() function, or the Write()/WriteLn()
> functions (in BP at least, they cannot be implemented using the
> language!).
So am I. That's one beauty of C: Everything, including `printf' and such,
is user-definable. (Said by someone who is hacking a Pascal compiler because
he cannot stand the ugly syntax of C/C++ ... ;-)
Peter
Dipl.-Phys. Peter Gerwinski, Essen, Germany, free physicist and programmer
peter.gerwinski@uni-essen.de - http://home.pages.de/~peter.gerwinski/ [970201]
maintainer GNU Pascal [970510] - http://home.pages.de/~gnu-pascal/ [970125]
Peter Gerwinski (peter@agnes.dida.physik.uni-essen.de)
HTML conversion by Lluís de Yzaguirre i Maura
Institut de Lingüística Aplicada -
Universitat "Pompeu Fabra"
e-mail: de_yza@upf.es