相关疑难解决方法(0)

在std :: vector声明中使用void指针有多糟糕?

我有两个不同的课程如下:

class text
{ };

class element
{ };
Run Code Online (Sandbox Code Playgroud)

我想将它们存储在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);
    }
}
Run Code Online (Sandbox Code Playgroud)

所以我会以这种方式调用节点存储两个,text并且element:

element div;
text msg;

node<element> wrapper(div);

wrapper.add_child(msg);
Run Code Online (Sandbox Code Playgroud)

编辑:要取回我使用的内容T typedef type;并将void指针转换为(type*).

我知道这不是很优雅也不实用,但我无法弄清楚这样做的正确方法是什么.所以请告诉我这是否实际可以接受,如果不是,那么如何以正确的方式做到这一点.

提前致谢!

c++ vector void

0
推荐指数
2
解决办法
1万
查看次数

标签 统计

c++ ×1

vector ×1

void ×1