我已经注意到类中的一些函数实际上并没有访问对象,所以我将它们设置为 static
。然后编译器告诉我,他们访问的所有变量也必须是静态的——好吧,到目前为止还是可以理解的。我有一堆字符串变量,比如
string RE_ANY = "([^\\n]*)";
string RE_ANY_RELUCTANT = "([^\\n]*?)";
等等。然后我把它们都做成了 static const
,因为它们从不改变。然而,我的程序只有当我把它们移出类时才能编译: 否则,MSVC + + 2010抱怨“只有静态常量积分变量可以在类中初始化”。
那太不幸了。有没有变通的办法? 我想把他们留在他们所属的班里。