From: "Matt Emson" <[EMAIL PROTECTED]> Sent: Monday, February 10, 2003 3:41 PM Subject: RE: [fpc-pascal]Classes/Objects/Pointers / Pointer Help
> RE: Dynamic arrays, What about using the Tcollection? Is there any > dis-advantage? I know a lot of TP Programmers swear by them. No, if you mean the dynamic array stuff I used in my example. TP's TCollection (the one objects unit) works internally exactly like shown here, it just provides an OOP wrapper above an internal array of pointers for initialization, finalization, access and management - with all its advantages and disadvantages (e.g. performance, convenience, ...). Compared to the Delphi style dynamic arrays (the terms 'object'/'class'/'dynamic array' have been a little bit overused in this thread lately imo :) following things could be interpreted as advantages (mostly syntactical stuff): No method invocations by hand if any, you can use the (imo) more convenient brackets compared to calls. You get rid of the (ugly) '^' - character. It is more convenient (imo): Memory is automatically freed when dynamic array is set to nil or not used anymore. It is reference counted like ansistrings. You still have something like a 'constructor' though (SetLength() method). There are a few helper functions (like Copy(), Slice(), ...) for easy handling too. Regarding Performance: range checks and especially the array access etc. could be inlined, saving an indirect call for every access. [Don't know the FPC implementation]. There is partial compatibility to fixed size arrays (e.g. when passing arrays as parameters to methods). One (little) drawback: you should be aware that a variable of the kind of dynamic array is actually a pointer and not the real thing. Sometimes causes hard to trace problems if you simply replace all static arrays with dynamic ones in your code... ;-) Probably I forgot one or two things, but it's quite a nice thing imo. Regards, Thomas _______________________________________________ fpc-pascal maillist - [EMAIL PROTECTED] http://lists.freepascal.org/mailman/listinfo/fpc-pascal