c++ - 带有指向自身指针的容器的模板类

标签 c++ templates

以下是否可能:

template<class  Container>
class TreeNode
{  

 Container mChildren;
}

TreeNode<std::vector<boost::shared_ptr<TreeNode>> myTreeNode;

最佳答案

不像你那样。 TreeNode 不是类而是类模板。 我现在很匆忙,所以这可能不是最简单或优雅的方式,但它是可能的:

#include <vector>

using namespace std;

class Container {};

template<class  Container>
class TreeNode
{  
  Container mChildren;
};

class TreeNodeWrapper;

typedef TreeNode<std::vector<TreeNodeWrapper*> > recursiveTreeNode;

class TreeNodeWrapper : public recursiveTreeNode {
};

recursiveTreeNode myTreeNode;

关于c++ - 带有指向自身指针的容器的模板类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4451793/

相关文章:

C++ Person 类 - 无法输出值和修改元素

c# - 推断类型的模板和隐式类型转换有什么问题?

来自 typedef 的 C++ 模板错误

c++编辑框位于主窗口后面

c++ - 如何释放 Gdiplus::Bitmap::FromFile 分配的内存

c++ - 后缀表达式求值

c++ - 使用 boost::serialization 序列化为 XML

c# - 如何使用 PInvoke 导入函数模板?

c++ - 选择专用于派生实例基类的类模板

c++ - 有没有办法使用 SFINAE 检测是否未声明非模板化非成员函数?