似乎文档也可以用作
中的参数void test(Value value);
并且Document和Value都可以有子值,它们之间有什么区别?
答案 0 :(得分:6)
首先,test
函数不应该编译,因为Value
不支持复制构造函数。因此,您必须改为使用Value& value
或const Value& value)
。
回到问题,Value
代表DOM中的一个节点。 Document
派生自Value
,它代表DOM的根。 Document
提供了将JSON解析为DOM的功能,而Value
则不能。
如果该功能不需要调用专用于Document
的API,例如Document::Parse()
,则应使用Value&
。将Document
对象传递给Value&
参数在C ++中也可以。