Ho due classi: classe base e classe ereditata come segue.Come chiamare correttamente il costruttore della classe base dalla classe ereditata in Delphi Phrism?
fondo:
TAlarm = class(System.Object)
private:
protected:
public:
constructor (tag:TTagname);
end;
classe ereditata:
TAlarmMsg = class(TAlarm)
public
constructor (aname:string);
method GetAlarmMsg:string; override;
method SendMsg(msg:string);
end;
costruttori:
constructor TAlarm(tag:TTagname);
begin
Tagname := tag;
end;
constructor TAlarmMsg(aname:string);
begin
inherited TAlarm(aname); <========Here is my problem.
name := aname.ToCharArray;
end;
Non importa cosa o come chiamo o gioco con il costruttore ereditato, continuo a ricevere i seguenti messaggi di errore quando compilo il file sorgente.
- Impossibile accedere a Self prima che il costruttore ereditato abbia terminato. E/o - Impossibile trovare il costruttore appropriato nella classe base chiamata in modo manuale è necessaria
proposito ereditato, ho passato buona mezza giornata ricerca su questo tema e ho trovato on-line una buona informazione. Niente aiuta finora. Ho persino trovato la pagina web che parla direttamente dei costruttori su Delphi Prism Wikipedia (http://prismwiki.embarcadero.com/en/Constructors).
Quindi, come lo faresti correttamente? Grazie,
@ CK, aName è una stringa non matrice di caratteri e questo è il motivo per cui ha avuto problemi. Ho semplicemente corretto la riga incriminata come segue: costruttore ereditato (aName.ToCharArray); Funziona. Grazie, l'istruzione ' – ThN
'ereditata;' da solo all'inizio del sottoclasse costruttore sembra essere ok – geekobi
Sì, funziona anche. Anche se non quando ho risposto a questo –