[fpc-pascal]Classes/Objects/Pointers / Pointer Help
prologic at prologitech.com
Mon Feb 10 13:28:15 CET 2003
On Mon, Feb 10, 2003 at 01:24:05PM +0100, Anton Tichawa wrote:
> If TNick is a class - I don't have the declarations - it must be initialized
> nicks := new(TNick, init(nick, hops, signon, ident, host, server, unused,
> That's correct because TNick is already a pointer, not an object, and init is
> required to call TNick's constructor.
> But the problem ist a more generic one .. I'll try to formulate the
> questions: A procedure (Alice) passes Data to another procedure (Bob):
So you say I should be using class declarations instead of object ?
Fair enough if that's the case, but could you show a simple example that
uses just object declarations ?
TmyObject = object
PmyObject = ^TmyObject;
> procedure Alice;
> 1. is Data "empty", i. e. is the call to Bob parameterless? Note that even in
> this case, there is still information flow between them, because 1. Bob knows
> having been called by Alice (which is information > 0 bit), and 2. might read
> input and return results in a predefined, global manner.
> 2. is Data readable?
> 3. is it writeable?
> 4. is it a special (CPU, hardwre) register, or global memory?
> 5. Is Data the only one of it's kind, or does it need addressing? If it needs
> addressing, is the address defined? Does Data have a fixed size? If not, is
> the size known or unknown?
> 6. Other questions that I don't see at the moment. One of these is the SWITCH
> mentioned below.
> 7. Is Data a pointer? If this is the case, then pointer types should be able
> to point to "null", "readable", "writeable", "register / memory", and other.
> I think the solution isa kindof redundancy. As a legacy example, look at
> pointers: Pointers with value $00000000 are defined as "nil". That disallows
> pointing to a variable at address 0. On one hand, that excludes memory at
> address 0 to be used for "pointed-to" data. On the other hand, low-level
> access with references to address 0 might still be required in some cases,
> simply to increase performance.
> There should be some kind of aggreement about Data. As a second example,
> Classes e. g. are now checked (the VMT contains a kind of checksum), but this
> is dangerous for every-day run-time type information, because a pice of
> arbitrary data might contain a correct checksum, thus pretending to be a
> class .. trak! exception.
> I suggest the words "SAFE" and "FAST" for these two "modes of operation".
> SAFE mode obeys legacy agreements, forces redundancy, and Bob is guaranteed
> to find a solution for the questions mentioned above, converning Data. In
> case of misunderstandings, exception handling moves the system to the safe
> In FAST mode, there is no redundancy, i. e. hardware runs at full speed, but
> software might crash.
> I suggest a BIG RED SWITCH on top / front of the computer, which is normally
> switched OFF, forcing SAFE mode, disallowing references to address 0 with a
> pointer, requiring action to follow previous negotiations.
> Any ideas how to continue this topic?
> Anton Tichawa.
> "Adas Methode war, wie sich zeigen wird, Tagtr?ume in offenbar korrekte
> Berechnungen einzuweben."
> Doris Langley Moore: Ada, Countess of Lovelace (London 1977).
> Anton Tichawa
> Volkertstrasse 19 / 20
> A-1020 Wien
> mobil: +43 664 52 07 907
> email: anton.tichawa at chello.at
> fpc-pascal maillist - fpc-pascal at lists.freepascal.org
More information about the fpc-pascal