6

似乎 Document 也可以用作参数

void test(Value value);

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

4

1 回答 1

13

首先,该test函数不应该编译,因为Value它不支持复制构造函数。所以你必须使用Value& valueorconst Value& value)代替。

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

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

于 2015-05-05T09:59:27.537 回答