Node:Planned - OOP,
Next:Planned - Misc,
Previous:Planned - Other types,
Up:Planned Features
Planned features: OOP
ProcVar := Obj.Method
{$X+}; method pointers (procedure/function of object
) (-> Delphi) ???
- destructor: reset VMT link to 0 ???
- checks:
@Obj <> nil
, TypeOf (Obj) <> nil
, TypeOf (Obj)^.Size = -TypeOf (Obj)^.NegatedSize
; separate switches; function initialized (that does these 3 tests) ???
class is class
(implemented in Pascal with Parent
)
- BP compatible dynamic method dispatcher ?? ???
- interfaces (cf. OOE, Java);
obj is interface
(not so easy?) ???; variables of type pointer to more than one interface [and class] (also possible!)
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