c++ - 包含对其自身实例的引用的标准 vector 的模板类

标签 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.
};

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

感谢您的回答!

最佳答案

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

关于c++ - 包含对其自身实例的引用的标准 vector 的模板类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12967174/

相关文章:

c++ - 有什么方法可以为函数指定一个通用参数,并限制它应该实现给定的接口(interface)

c++ - Libharu pdf 创作 : How to know the size of the printed text

c++ - 非模板类中的多个模板函数

javascript - Nunjacks 图标计数宏

c++ - 关于类模板和函数模板SFINAE的问题

swift - House Robber实现如何使用递归正确退出?

算法复杂度,求解递归方程

c++ - 了解 Visual Studio 2010 中的此错误 (LNK 2019)

amazon-web-services - 在 CloudFormation 中更新用户数据时强制更换 EC2 实例

c# - 如何删除所有空的 XElements