Qt中的动态类型容器

时间:2014-07-12 14:25:54

标签: c++ qt containers

在Qt中是否有可以存储不同类型(是的,我真的需要使用不同类型)的容器?我必须创建一个新类来执行此操作?如果是这样,你能给我一个暗示来创造吗?

1 个答案:

答案 0 :(得分:1)

  1. Qt中的大多数容器都是template based,然后您可以将它们用于不同的静态类型。

  2. 另一种选择是使用QVariant,例如:QVector<QVariant> vec;

  3. 更动态的解决方案是使用polymorphism,您可以存储指向基类的指针等等。


  4. PS:作为一般规则,你应该避免这种模式。来自Effective C ++,作者:Scott Meyers:

      

    任何时候你发现你自己编写表格的代码&#34;如果对象是   T1类型,然后做一些事情,但如果它是T2类型,那么做   别的,&#34;打自己。