Forum: Object-Pascal / Delphi-Language
Delphi
by Der schöne Günther,
6. Jan 2014
Für mich als Mensch ist es eine Konstante, da ich am Objekt den Wert nicht ändern kann: Über die gesamte Lebenszeit des Objekts hinweg ist der Wert zwingend konstant.
Forum: Object-Pascal / Delphi-Language
Delphi
by Der schöne Günther,
6. Jan 2014
Zumindest in C++ müssen sie nicht von Anfang an einen Wert haben. Beispiel:
Interface:
class TMyClass {
public:
const int someIntConst;
TMyClass(const int someParam);
TMyClass(void);
Forum: Object-Pascal / Delphi-Language
Delphi
by Der schöne Günther,
6. Jan 2014
Also in Java sehe ich das relativ häufig. Immer wieder spaßig wenn zwei implementierte Interfaces auch noch jeweils eine Konstante mit dem selben Namen haben :-)
Konstanten habe ich Delphi sowieso noch nicht so ganz verstanden. Ich vermisse bsp. immer noch ein bisschen, die Konstanten eines Objekts erst im Konstruktor setzen zu können. In C++ geht das ja über den Element-Initialisierer...
Forum: Object-Pascal / Delphi-Language
Delphi
by Der schöne Günther,
6. Jan 2014
Natürlich habe ich selbst probiert und gesucht.
Properties helfen einem für Default-Parameter nicht weiter.
Das mit "private" und Interface-Vererbung verstehe ich nicht. Hast du ein Beispiel?
Thom, das Interface von der Klasse abhängig zu machen ist keine gute Idee. Aber: Deine TSomeBaseClass macht doch noch einmal deutlich, dass die Parameterbelegung eine Implementierungseigenschaft...
Forum: Object-Pascal / Delphi-Language
Delphi
by Der schöne Günther,
6. Jan 2014
In Delphi können Interfaces keine Konstanten haben, oder?
Ja, es sind in der Regel Implementations-Details die dort nicht hineingehören. Ich ziehe Standard-Belegungen für Parameter immer gerne in Konstanten raus:
TSomeClass = class
private const
Param_someProc_someParam = 12;
public
procedure someProc(const someParam: Integer = Param_someProc_someParam);
end;