Выполнить копию документа объекта quickjson
Я делаю класс и хочу вернуть свой класс внутри метода. Мой класс имеетrapidjson::Document
объект.
Вы можете увидеть предыдущие проблемы здесь:LNK2019: «Неразрешенный внешний символ» с fastjson
Как я обнаружил, quickjson мешает вам выполнить любую копию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
элемент?