Objekte in MSElang

Forum für alles rund um die MSEide und MSEgui
mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Objekte in MSElang

Beitrag von mse »

mschnell hat geschrieben:
mse hat geschrieben:Das kompiliert nicht, da die Typen nicht passen.

Bei Delphi Class Typen (auch bei anderen ? ) wird bei Bedarf automatisch der Pointer verwendet, ohne dass man das explizit angibt. Nicht sauber, aber praktisch. (obj3.doit bedeutet da ja eigentlich obj3^.doit)

Ist die Regel das bei mse-Pascal strenger und/oder klarer definiert ?

FPC {$mode objpas} macht das AFAIK auch nicht. Für Objekte die immer auf dem heap instantiiert sind gibt es "class", welches implizite Dereferenzierung bietet. Es gibt zwar Opposition dagegen, da "class" = "^object" und daher redundant ist.

Code: Alles auswählen

 
type
 objty = object
  f1: int32;
  constructor create(i: int32);
  destructor destroy();
  method doit();
 end;
 
 ctest = class(objty)
 end;
 
[...]
var
 test1: ctest;
begin
 test1:= ctest.create(123);
 test1.doit();
 test1.destroy();
 

Antworten