我正在编写一种JSON解析器。
因此,我正在为那里可能存在的不同变量类型创建一个类层次结构。字符串,整数,数组,对象等。
我认为最简单的方法是使用一个虚方法GetValue
,它返回变量返回的变量值。
例如,我的Int
类型GetValue
方法将返回int
,我的Array
类型将返回std::vector
或某些类型这样的容器通过它GetValue
。
我不确定如何做到这一点。我首先想到虚拟方法的模板参数可以工作,但唉,它们不能被模板化。我已经走过了虚拟方法的路线,因为我想以后我会有一些容器指向基类型,所以我的GetValue
方法需要是虚拟的。
返回struct
的方法是什么,它可以存储所有类型并依赖调用者来知道要查找哪个结构部分?使用重载转换操作符的class
是否是一个好主意,这样它可以根据它的使用位置返回正确的结构部分?