Ich habe festgestellt, dass einige meiner Funktionen in einer Klasse tatsächlich nicht auf das Objekt zugreifen, also habe ich sie erstellt static
. Dann sagte mir der Compiler, dass alle Variablen, auf die sie zugreifen, auch statisch sein müssen - na ja, bisher ziemlich verständlich. Ich habe eine Reihe von String-Variablen wie
string RE_ANY = "([^\\n]*)";
string RE_ANY_RELUCTANT = "([^\\n]*?)";
und so weiter in der Klasse. Ich habe sie dann alle gemacht, static const
weil sie sich nie ändern. Mein Programm wird jedoch nur kompiliert, wenn ich sie aus der Klasse verschiebe: Andernfalls beschwert sich MSVC ++ 2010 über "Innerhalb einer Klasse dürfen nur statische konstante Integralvariablen initialisiert werden".
Nun, das ist unglücklich. Gibt es eine Problemumgehung? Ich möchte sie in der Klasse lassen, zu der sie gehören.
const
und seinstatic
.