我是 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.
};
它是直截了当的、可能但复杂的,还是不可能的?
感谢您的回答!
最佳答案
如果您的 vector 类型都是相关的,请使用@jogojapan 提供的链接中解释的多态性,如果类型根本不相关,请使用 void*
的 vector 来保存指向您的指针数据(虽然有点乱)
关于c++ - 包含对其自身实例的引用的标准 vector 的模板类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12967174/