我有两个不同的课程,如下所示:
class text
{ };
class element
{ };
我想将它们存储在class node
:
template <typename T>
class node
{
T cargo;
std::vector<void*> children;
node(T cargo) : cargo(cargo)
{ };
void add_child(T node)
{
this->children.push_back((void*) node);
}
}
所以我会以这种方式调用节点,同时存储text
和element
:
element div;
text msg;
node<element> wrapper(div);
wrapper.add_child(msg);
编辑:要取回我使用的内容T typedef type;
并将 void 指针转换为(type*)
.
我知道这不是很优雅也不是很实用,但我就是不知道这样做的正确方法是什么。所以请告诉我这实际上是否可以接受,如果不是,如何以适当的方式做到这一点。
提前致谢!