Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Anwendung dereferenziert Nullzeiger, keine Exception

  Alt 9. Okt 2019, 09:02
Eine Zugriffsverletzung wird nur ausgelöst, wenn die Methode "someInteger" virtuell ist oder innerhalb der Methode auf "Self" zugegriffen wird.
Delphi-Quellcode:
TMyObject = class(TObject)
private
  FInt2: Integer;
public
  function someInteger1: Integer;
  function someInteger2: Integer;
  function someInteger3: Integer; virtual;
end;

implementation

function TMyObject.someInteger1: Integer;
begin
  Result := 1;
end;

function TMyObject.someInteger2: Integer;
begin
  Result := FInt2; { Self.FInt2 }
end;

function TMyObject.someInteger3: Integer;
begin
  Result := 3;
end;


var
  MyObject: TMyObject;
  v: Integer;
begin
  MyObject := nil;
  v := MyObject.someInteger1;
  v := MyObject.someInteger2; {hier Zugriffsverletzung Self.FInt2}
  v := MyObject.someInteger3; {hier Zugriffsverletzung Self.ClassType.Methode}
end;
  Mit Zitat antworten Zitat