我需要一个 QHash
容器,它采用 quint8
键,但采用异构类型作为值,所有这些都将是 Qt 容器或类。作为示例,我可能想要插入 QDate
或 QTime
对象,甚至 quint8
作为值。
如何定义这样的类型,以便我可以在其他类中使用它并在运行时适当填充?我希望能够将其作为全局类型访问。可能吗?
注意问题已被编辑以更好地反射(reflect)OP的意图。编辑之前写下的答案适合原始问题。
最佳答案
QVariant
是一种可以存储在运行时确定的各种值类型中的任何一种类型,因此 QHash<quint8, QVariant>
就是你想要的。
另请参阅https://en.wikipedia.org/wiki/Tagged_union对于一般模式。
关于c++ - 如何定义具有异构值类型的 QHash?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25373936/