我正在上课,我想在一个方法中返回我的课程。我的班级有一个rapidjson::Document
对象。
你可以在这里看到之前的问题:LNK2019: "Unresolved external symbol" with rapidjson
正如我发现的那样,rapidjson 会阻止您执行任何类型的Document
对象副本,然后包含Document
对象的类的默认副本失败。我正在尝试定义自己的复制构造函数,但我需要执行对象的副本。我看到了一种假设用方法复制对象的.Accept()
方法,但是在类中返回了很多错误rapidjson::Document
:
错误 C2248:“无法访问在类 `rapidjson::GenericDocument 中声明的私有成员”
这是我的复制构造函数:
jsonObj::jsonObj(jsonObj& other)
{
jsonStr = other.jsonStr;
message = other.message;
//doc = other.doc;
doc.Accept(other.doc);
validMsg = other.validMsg;
}
我在库的代码(第 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
元素的副本呢?