当我使用 rapidjson 文档作为成员变量并执行以下操作时:
class Test
{
rapidjson::Document m_jsonDocument;
public:
void f()
{
// WORKS FINE
rapidjson::Document document;
if (document.Parse<0>("{ \"hello\" : \"world\" }").HasParseError())
printf("ERROR PARSING JSON\n");
else
printf("%s\n", document["hello"].GetString());
// BUT HERE THROWS, WHY?
if (m_jsonDocument.Parse<0>("{ \"hello\" : \"world\" }").HasParseError())
printf("ERROR PARSING JSON\n");
else
printf("%s\n", m_jsonDocument["hello"].GetString());
}
};
当我在 CTOR 中在线调用应用程序if (m_jsonDocument.Parse<0>("{ \"hello\" : \"world\" }").HasParseError())
崩溃时。Visual Studio 调试器显示“无法读取内存”。为. 问题是什么?成员变量和局部变量有什么区别?flags_ = defaultFlags[type];
document.h
GenericValue(Type type)
_flags
编辑:我设置f
为使用在这里定义的回调setResponseCallback
,并被f
称为使用 dispatchResponseCallbacks
这里定义的回调。