[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

### 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