gpt4 book ai didi

c++ - 在 C++ 中将默认参数设置为 nullptr 和非静态类字段

转载 作者:搜寻专家 更新时间:2023-10-31 01:48:37 25 4
gpt4 key购买 nike

我正在构建一个二叉搜索树,下面是添加函数:

void BinaryTree::add(int value, Node*& node, Node*& parent) {
if(!node) {
node = new Node(value);
node->parent = parent;
}
else if(node->key < value)
this->add(value, node->rightNode, node);
else if(node->key > value)
this->add(value, node->leftNode, node);
}

我想为最后两个(节点,父)参数设置默认参数:

void add(int value, Node*& node = root , Node*& parent = nullptr);

其中 root 是类的一个字段。

这似乎对任何一种情况都不起作用。我该如何实现它,这里有什么问题?谢谢!

最佳答案

您不能初始化对 nullptr 的引用。它们必须是有效的对象。要使 root 默认对象,您可以添加具有相同名称的新函数

void BinaryTree::add(int value) {
Node* emptyParent = nullptr;
add(value, root, emptyParent);
}

关于c++ - 在 C++ 中将默认参数设置为 nullptr 和非静态类字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17556798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com