12.2.6 Planned features: OOP
- init VMT in initialized variables (fjf445*.pas)
- `published', `public', `protected', `private' (scope limited to a unit in `--borland-pascal', and to the object type normally)
- `ProcVar := Obj.Method' {$X+}; method pointers (`procedure/function of object') (-> Delphi) ???
- VMT link (global, local, new: set to 0 or @VMT; destructor: reset to 0)
- checks: `@Obj <> nil', `TypeOf (Obj) <> nil', `TypeOf (Obj)^.Size = -TypeOf (Obj)^.NegatedSize'; separate switches; function initialized (that does these 3 tests) ???
- virtual constructors
- `class is class' (implemented in Pascal with `Parent')
- interfaces (cf. OOE, Java); `obj is interface' (not so easy?) ???; variables of type pointer to more than one interface [and class] (also possible!)
- allow method-implementation right after the declaration ???
- friends ???
- `dynamic' (= `virtual' ?)
- `class' (reference to an object type); allow classes and object types to inherit from each other; OOE; <01BD7A3A.6B187A20.prucha@helicon.co.at>; obpascal.zip
- `New': Delphi syntax; Dispose?? (automatically?; set references automatically to nil) (-> FPC)
- `--base-class=foo', `--base-object=bar' ???
- properties <01BD7A3A.6B187A20.prucha@helicon.co.at>, <16131.199805071354@potter.cc.keele.ac.uk>
- virtual constructors in interfaces (load)???
- VMT problem with interfaces (my solution??? also with dynamic linking???)
- VMTs (also for local classes (EP modules???)!) in GPI files, written to assembler file by main program; `--cfiles=foo': .s file with VMTs for C/assembler??? (also .h???)
- method overloading ??? ??
- class libraries (more or less TV compatible?/Free Vision/EFLIB) (streams as interface type?)
- VMT: ClassID (64/128 bits?) default 0, error when duplicated, warning when 0 and inherited from class with <>0 ?, not allowed for abstract classes!; ClassName (also for abstract classes?); []; ProgrammerID, BaseClassID at beginning of unit (redeclarable?) ???
- VMT: Children: list of pVMT
- find class by ClassID/ClassName (implementable in Pascal with `Child')
- object constants, class variables (-> other name for `VMT'); virtual/static
- store in GPI: whether ClassID used, ClassName used, which classes are instantiated
- `asmname' for methods
This document was generated
by Frank Heckenbach on May, 10 2002
using texi2html