我正在尝试以下操作,并使两个日志语句之间出现模拟器崩溃。有什么不对?

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;

关于c++ - 通过静态成员函数初始化C++中的非常量静态成员变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8540414/

10-10 13:31