Я реализовал свой собственный модуль записи XML для создания XML как QString.
Я создал класс «MyXmlWriter» с закрытой переменной-членом как QXmlStreamWriter и попытался инициализировать его в открытом методе writeToString ()
в заголовочном файле объявления:
class MyXmlWriter {
public:
MyXmlWriter();
~MyXmlWriter();
QString writeToString();
private:
QXmlStreamWriter writer;
void writePart();
}
в файле cpp:
void MyXmlWriter::writePart() {
// i want to use the QXmlStreamWriter instance hier
}
QString MyXmlWriter::writeToString(){
QString result;
writer(&result); // at this became the error: no match for call to '(QXmlStreamWriter) (QString*)'
xmlWriter.setAutoFormatting(true);
// private method called
writePart();
return result;
}
эта ошибка появляется при сборке:
ошибка: нет совпадения для вызова средства записи (QXmlStreamWriter) (QString ) (& result); *
Если запись QXmlStreamWriter объявлена в локальном методе writeToString () , тогда я не могу получить доступ к этому модулю записи в приватном методе writePart ()
я хочу использовать переменную-член "writer" в других методах, поэтому локальное объявление мне не подходит.