Hallo,
Ich habe eine Klasse, die in ihrem
Constructor einige Werte aus einem String einliest. Davon abgeleitet wird eine Klasse, die Werte aus mehreren Strings auslesen soll, wofür ich mehrfach den geerbten
Constructor aufrufen möchte.
Ich habe aus mehreren Quellen zusammengesetzt, dass dieser geerbte
Constructor gar kein Objekt erzeugt, sondern nur die geerbten Felder initialisiert.
Stimmt das, oder erzeuge ich hier mehr als ein Objekt, und damit ein Speicherleck da ich nur eine einzige Referenz zurückgebe?
In dem Fall müsste ich den mehrfach auszuführenden Code aus dem
Constructor auslagern.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30:
| TTag = class private FKeyword: String; public constructor Find(const S: String; out p, q: Integer); virtual; end;
TMultiTag = class (TTag) constructor Find(const S: String; out p, q: Integer); override; end;
constructor TMultiTag.Find(const S: String; out p, q: Integer); begin FKeyword := 'String1'; inherited; if p <= 0 then begin FKeyword := 'String2'; inherited; end; if p <= 0 then begin FKeyword := 'String3'; inherited; end; end; |
Grüße,
Daniel