Название: Меняет ли метод createElement() объект QDomDocument() ? Отправлено: xintrea от Август 22, 2015, 01:25 У меня несколько классов, объекты последующего включены в объект текущего, грубо говоря:
- Корень - Ветка - Таблица записей в ветке - Запись - Таблица аттачей в записи - Аттач И вот у каждого такого класса есть метод exportDataToDom(). Методы эти вызываются по цепочке в глубину, и в конце концов формируется корневой QDomDocument. Каждый метод принимает в параметре корневой объект QDomDocument, который нужен чтобы создать QDomElement. Если не знать корневого QDomDocument, то отдельно созданный QDomElement невозможно прилепить ни к QDomDocument, ни к QDomElement. Вот такая особенность DOM-модели в Qt. Поэтому приходится тягать в глубины всех методов корневой QDomDocument. Я сейчас использую примерно такой код в методах exportDataToDom(): Код: QDomElement Record::exportDataToDom(QDomDocument doc) const Учитывая, что QDomDocument является Implicit Sharing объектом, то такой проброс должен приводить только к передачи указателя. Но! Можно заметить, что в каждом методе exportDataToDom() есть команда вида: Код: doc.createElement("..."); Так вот я не пойму, эта команда меняет объект doc или нет? Если меняет, то у меня будут множиться эти QDomDocument как грибы после дождя. То есть, я хочу узнать, может быть стоит передавать таки указатель на QDomDocument, вот так: Код: QDomElement Record::exportDataToDom(QDomDocument *doc) const |