Waldek Hebisch wrote:
In Delphi each class is a descendant of TObject. TObject has a predefined constructor called Create. As I wrote ATM the most visible difference between OOE/Delphi and our current implementation of classes is that we do not implement Root/TObject.
I belive that we can use a single type as both Root and TObject. Namely, TObject has more methods, but if we allow silent shadowing then the extra methods will be invisible to OOE programs.
But OOE doesn't allow silent shadowing (i.e., without `override'), does it? Do you propose to make a special exception for those particular methods? What would a common base type gain us? Existing code will always use the features of the base type of the model used, and not more. At least OOE doesn't allow multiple inheritance (what about Delphi?), apart from "property classes" which don't have a base type, so mixing of classes derived from different base types via multiple inheritance also doesn't seem a real issue to me. Peter N Lewis wrote:
Ok. Mac objects don't have any concept of Root or TObject base object (various class library frameworks have implemented their own base object, but that is a code level issue).
Same for BP OOP.
I guess as long as there is no significant overhead it would not matter if there was some invisible Root/TObject/base object, although personally I'd prefer to avoid it,
Me too (for BP OOP). I see no problem to add an implicit ancestor if no explicit one is given in Delphi and OOE, and not do so in the other two models. Frank -- Frank Heckenbach, frank@g-n-u.de, http://fjf.gnu.de/, 7977168E GPC To-Do list, latest features, fixed bugs: http://www.gnu-pascal.de/todo.html GPC download signing key: ACB3 79B2 7EB2 B7A7 EFDE D101 CD02 4C9D 0FE0 E5E8