模板类,包含对其自己的实例的引用的stdvector

时间:2012-10-19 03:56:36

标签: c++ templates recursion

我对C ++比较陌生,我第一次尝试构建复杂的模板结构。

如何作为模板类Foo的成员声明Foo *元素的std :: vector,但是它可以是各种类型的?

#include <vector>

template <typename T>
class Foo {
    T mValue;
    std::vector< Foo<T>* > mFooParameters;  // <---- I would like this vector to contain
                                            //       any sort of Foo<T>* elements,
                                            //       Foo<int>*, Foo<double>*, etc.
};

是直截了当,可能但很复杂,或者不可能?

感谢您的回答!

1 个答案:

答案 0 :(得分:0)

如果您的矢量类型都是相关的,请使用@jogojapan提供的链接中所述的多态,如果类型完全不相关,请使用void*的向量来保存指向您数据的指针(类型为虽然凌乱)