Const Array von Klasseninstanzen und der this-Pointer

Gast #3372900
Lesenswert?

Hallo zusammen,

ich habe ein statisches Array von Klasseninstanzen, welches im Flash 
liegen soll. Das habe ich so angelegt:
1
const output_t output_as[NUMBEROFOUTPUTS] = { OUTPUT_CFG };
(wobei OUTPUT_CFG ein Makro ist, das die komplette Initialisierung 
enthält)

Wenn ich nun eine Methode aufrufen will:
1
output_as[i].Init();
dann meckert der Compiler (zu Recht), daß der This-Pointer vom Typ
1
const output_t
ist, aber die Methode einen This-Pointer vom Typ
1
output_t
erwartet.

Nun kann ich das Problem mit einem Cast lösen:
1
((output_t*) (&output_as[i])) -> Init();
und es funktioniert auch alles wie gewollt, aber schön ist das ja nicht.

Gibt es einen eleganteren Weg?
So etwas wie
1
const class output_t {...};
funktioniert ja nicht.
#3373117
Lesenswert?

Wobei sich die Frage stellt, warum eine Methode, die nichts ändert, 
"Init" heißt. Viel initialisieren kann sie ja nichts, wenn sie für ein 
const-Objekt aufgerufen wird.

Sollte sie wirklich etwas initalisieren, sollte das im Konstruktor 
gemacht werden. Wenn das nicht der Fall ist, ist der Name wohl einfach 
falsch.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren