C++ 初始化C+中的非常量静态成员变量+;,通过静态成员函数

C++ 初始化C+中的非常量静态成员变量+;,通过静态成员函数,c++,initialization,int,static-members,C++,Initialization,Int,Static Members,我正在尝试以下操作,并在两个log语句之间出现了模拟器崩溃。有什么不对劲吗 protected: static int maxSize; public: static void setFontSizeRange(int max) { Log("here %d->%d", max, maxSize); maxSize = max; Log("ok"); } 我可以让日志重现参数,但它在输出静态成员之前崩溃(因此上面显示

我正在尝试以下操作,并在两个log语句之间出现了模拟器崩溃。有什么不对劲吗

protected:
    static int maxSize;
public:
    static void setFontSizeRange(int max) {
        Log("here %d->%d", max, maxSize);
        maxSize = max;
        Log("ok");
    }
我可以让日志重现参数,但它在输出静态成员之前崩溃(因此上面显示的第一个日志在引用该参数时无法工作)


谢谢。

您应该定义静态成员

class Something
{
protected:
    static int maxSize;
public:
    static void setFontSizeRange(int max) {
        Log("here %d->%d", max, maxSize);
        maxSize = max;
        Log("ok");
    }
}; // class declaration ends here...

int Something::maxSize = 0;

哪个模拟器?站台?环境?您是否在某处定义了该静态成员?(请注意定义和声明之间的区别)。Griwes,您可以在所示的示例中看到我对静态成员的所有引用(后面的引用存在,但没有机会执行)@肖利,这是Arm for Bada的Eclipse,运行在Windows上。这一次总是让我大吃一惊,谢谢。现在工作正常,所以只有
静态常量
可能是初始化错误!