rapidjson中的Document和Value之间有什么区别?

时间:2015-05-04 10:04:22

标签: rapidjson

似乎文档也可以用作

中的参数
void test(Value value);

并且Document和Value都可以有子值,它们之间有什么区别?

1 个答案:

答案 0 :(得分:6)

首先,test函数不应该编译,因为Value不支持复制构造函数。因此,您必须改为使用Value& valueconst Value& value)

回到问题,Value代表DOM中的一个节点。 Document派生自Value,它代表DOM的根。 Document提供了将JSON解析为DOM的功能,而Value则不能。

如果该功能不需要调用专用于Document的API,例如Document::Parse(),则应使用Value&。将Document对象传递给Value&参数在C ++中也可以。