Выполнить копию документа объекта 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 элемент?

Ответы на вопрос(4)

Ваш ответ на вопрос