我正在创建一个类,并且想在一个方法中返回我的类。我的类(class)有一个rapidjson::Document
对象。
您可以在这里看到以前的问题:LNK2019: "Unresolved external symbol" with rapidjson
如我所发现,rapidjson阻止您执行Document
对象的任何形式的复制,然后包含Document
对象的类的默认拷贝失败。我正在尝试定义自己的拷贝构造函数,但我需要执行对象的拷贝。 I saw a way假设使用.Accept()
方法复制对象,但是在rapidjson::Document
类内部返回了很多错误:
这是我的复制构造函数:
jsonObj::jsonObj(jsonObj& other)
{
jsonStr = other.jsonStr;
message = other.message;
//doc = other.doc;
doc.Accept(other.doc);
validMsg = other.validMsg;
}
我发现in the code of the library(第52-54行)是“
Copy constructor is not permitted
”。这是我的课:
class jsonObj {
string jsonStr;
Document doc;
public:
jsonObj(string json);
jsonObj(jsonObj& other);
string getJsonStr();
};
方法:
jsonObj testOBJ()
{
string json = "{error:null, message:None, errorMessage:MoreNone}";
jsonObj b(json);
return b; //It fails here if I return a nested class with a rapidjson::Document in it. Returning NULL works
}
那么如何执行
Document
元素的拷贝? 最佳答案
仓库https://github.com/rjeczalik/rapidjson
拥有DeepCopy patch,它可以帮助您将一个文档复制到另一个文档中。
关于c++ - 执行rapidjson的Document对象的拷贝,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22707814/