我有以下代码:

template<class T>
class RandomTreeNode {
private:
    RandomTreeNode<T> *left;
    RandomTreeNode<T> *right;
public:
    RandomTreeNode(): left(0), right(0) {}

    void create_left_child(){ left = &RandomTreeNode<T>();}
    void create_right_child(){ right = &RandomTreeNode<T>();}


但这给了我一个编译错误,因为我指向一个临时变量的地址。我不希望在函数末尾销毁创建的新RandomTreeNode,如何实现呢?

最佳答案

使用:

void create_left_child()
{
    left = new RandomTreeNode<T>();
}

void create_right_child()
{
    right = new RandomTreeNode<T>();
}


记住,当您不再需要它们时(可能是整个树被破坏或该特定节点被删除时),都必须删除它们。

10-07 12:27