1

我对 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.
};

是直截了当、可能但复杂还是不可能?

谢谢您的回答!

4

1 回答 1

0

如果您的向量类型都是相关的,请使用@jogojapan 提供的链接中解释的多态性,如果类型根本不相关,请使用向量void*来保存指向您的数据的指针(虽然有点混乱)

于 2012-10-19T04:07:58.487 回答