C++ 初始化C+中的非常量静态成员变量+;,通过静态成员函数
我正在尝试以下操作,并在两个log语句之间出现了模拟器崩溃。有什么不对劲吗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"); } 我可以让日志重现参数,但它在输出静态成员之前崩溃(因此上面显示
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上。这一次总是让我大吃一惊,谢谢。现在工作正常,所以只有
静态常量
可能是初始化错误!