通过静态成员函数在C ++中初始化非const静态成员变量

时间:2011-12-16 21:32:43

标签: c++ initialization int static-members

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

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

我可以让日志重现参数,但在输出静态成员之前它会崩溃(因此上面显示的第一个日志在引用它时不起作用)。

感谢。

1 个答案:

答案 0 :(得分:2)

您应该定义静态成员。

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;