Warum muss es denn eine Konstante sein?
Wenn es irgendeine Objektinstanz (Liste, Dictionary o.ä.) ist, wirst Du deren Daten immer verändern können.
Um die Konstante ansich geht es ja nicht, sondern um die Möglichkeit der statischen Initialisiertung, wie sie z.b. gültig ist für
- Arrays
Delphi-Quellcode:
const
MyArray: array[0..1] of Integer = (0, 1);
- Records
Delphi-Quellcode:
const
MyRecord: TRecord = ( Foo: 1; Bar: 'test' );
- etc
In C++ kann man auch fast alle standard Container der STL mit solchen Initializer-Lists statisch initialisieren, selbst wenn es sich um dynamisch erstellte Instanzen handelt. Delphi kann das meines Wissens nach nur für dynamische Arrays des Typs
type TXArray = array of X
:
Delphi-Quellcode:
var
A: TStringArray;
begin
A := TStringArray.Create('test', '123', '456');