我有一个程序,我在其中编写了一个类,如下所示:
.h 文件
typedef map<string, int> stringMap;
class SampleClass{
public:
void setup();
void update();
void draw();
private:
static stringMap _someMap;
static stringMap someMapInitializer();
};
.cpp 文件
//Initializer for static var
stringMap SampleClass::_someMap = someMapInitializer();
stringMap SampleClass::someMapInitializer(){
_someMap["something"] = 1;
return _someMap;
}
但是在执行上述操作时,我开始在运行程序时收到“程序收到信号 EXC_BAD_ACCESS”错误(虽然编译得很好)
上面的函数改为如下:
stringMap SampleClass::someMapIntializer(){
map<string, int> m;
m["somehting"] = 1;
return m;
}
工作正常。第一种情况有什么问题?我不能在静态函数中访问静态成员变量吗?