我有一个 Config
包含 <string, string>
的类map
数据,用于保存配置键和值。有时,我不知道在编译时什么时候,我希望能够访问该对象内的一个键作为该对象的另一个(子)实例 - 我希望能够在理论上无限嵌套.
未解析的数据看起来像这样
someKey = someVal
keysnkrates = "itsastring"
# comments
keyConfig = (
subKey = 1
another = 3.14159
subKeyConfig = (
...inf...
)
)
otherVals = ...
我怎样才能在不诉诸 hack-y 类 C 方法的情况下解析这样的东西?我不想处理原始指针,也不想处理空值,但是我想出的唯一解决方案是添加一个指向 Config
的指针。类,如果它是 !nullptr
那么它就是一个子配置对象。
最佳答案
只需使用普通的 STL 贴图。您认为(至少)一些 JSON 和 XML 解析器如何在 C++ 中工作?
struct Config{
Data data;
std::map <std::string,Config> children;
}
现在内嵌套值如你所愿:
Config config;
config.children["My Inner Config "] = Config(<my data>);
config.children["My Inner Config "].children["My inner inner config"] = Config(<more data>);
关于c++ - 如何以多态方式无限嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32290267/