C++传递 QDomDocument 指针递归
C++ passing QDomDocument pointer recursive
我在传递QDomDocument指针递归时遇到了一点问题。
也许你可以告诉我我忽略了什么。
QString Node::asXML()
{
QDomDocument *doc = new QDomDocument();
QDomElement ele = doc->createElement(typeInfo());
doc->appendChild(ele);
foreach (Node *child, children)
{
qDebug() << "Node: " << child->name;
child->recurseXML(doc, ele);
}
return doc->toString();
}
void Node::recurseXML(QDomDocument *doc, QDomElement parent)
{
QDomElement node = doc->createElement(typeInfo());
parent.appendChild(node);
QMapIterator<QString, QVariant> i(attributes);
qDebug() << attributes.size();
while(i.hasNext())
{
i.next();
node.setAttribute(i.key(), i.value().toString());
qDebug() << "KEY: " << i.key() << " | VALUE: " << i.value().toString();
}
}
我丢失了从递归中获得的数据,但我不确定为什么。可能我犯了一个指针错误,但我没有看到它。也许有人可以帮助我
问候
在递归XML函数中,参数父级是一个局部变量。它不是您在asXML函数中创建的QDomElement,而是它的副本。将父项更改为引用或指针:
void Node::recurseXML(QDomDocument *doc, QDomElement parent)
-->
void Node::recurseXML(QDomDocument *doc, QDomElement& parent)
相关文章:
- 在对象指针上调用 Delete 是否会递归删除其动态分配的成员
- 为什么编译器将其解析为函数指针而不是递归调用?
- 如何通过函数指针递归调用类成员函数?
- 使用双指针和递归反转链表
- 使用带有递归的指针
- 有没有办法在递归中使用指针来查找数组的最小值?
- 具有 4 个指针的节点的递归插入函数返回 null
- 共享指针中的递归,而变量在类中定义
- 尝试使用递归和指针到指针反转链表,但反转函数没有给出预期的正确输出
- 指针似乎迷失在递归算法中
- 为什么这种递归子集和算法会导致指针分配错误
- 没有指针的递归结构?(霍夫曼)
- 从 'int' 到 'int*' 的转换无效(尝试使用指针进行递归)
- 通过递归正确传递指针的值
- 通过类型C++ 的继承树递归导致此指针问题
- 是否有可能有一个指针指向由奇怪的递归模板创建的基类
- c++ 递归树 使用指针和状态机构建树
- 指针生成的递归模板
- 递归插入到二叉树中,按值传递指针
- C++递归指针函数调用