On 22 Oct 2005 at 0:02, Waldek Hebisch wrote:
I would like to slightly update Mac objects and Delphi classes support. In particular I ma thinking about options names.
AFAICS there five major axes which differentiate dialects that we would like to support:
- Value versus reference model:
BP - value model (objects are values)
OOE, Delphi, Mac - pointer model (object are pointer to values)
- Static versus virtual methods:
OOE, Mac - mehods are always virtual BP, Delphi - there are static methods
- Keywords used:
BP, Mac - use "object" as a keyword (but with different semantics) OOE, Delphi - use "class" keyword
- Method redefinition:
BP - silent overriding Delphi - silent shadowing, override needs "override" OOE, Mac - explicit "override" needed
- Base object:
BP, Mac - no base object, multiple roots OOE - "Root" is the root of inheritance tree Delphi - "TObject" is the root of inheritance tree
I am generally in favour, subject to the exceptions below.
There is also question if constructors are mandatory for objects with virtual methods.
IMHO they should be - or at least a warning should be generated, except in Mac mode.
[...]
-fbase-object= -- to add default parent to object without an explicit parent
I think this should probably be avoided. If someone wants something to be his base object, he should be able to say so when declaring the object.
With regard to Root and TObject (OOE and Delphi), I have suggested elsewhere that one could probably be a silent ancestor of the other. In fact, they could be one and the same thing (with names changing, and/or members hidden or revealed depending on Delphi or OOE mode). I am not sure whether this makes any sense ...
Best regards, The Chief -------- Prof. Abimbola A. Olowofoyeku (The African Chief) web: http://www.greatchief.plus.com/