我试图将第二个可选参数传递给我的搜索函数:
class ExponentialTree
{
public:
node* Search(int num, node* curr_node=root);
void Insert(int num);
private:
node* root;
};
node* ExponentialTree::Search(int num, node* curr_node)
{
如果我用一个参数调用,我希望它将它设置为 root。我在声明中尝试了默认参数,在实现中尝试了默认参数,两者(我知道它不是真的),两个声明。没有任何效果。有任何想法吗?我不想重载方法,因为它是唯一会改变的行。
谢谢。
最佳答案
使用:
node* Search(int num, node* curr_node=NULL);
并在函数体中处理 NULL 指针的情况:
node* Search(int num, node* curr_node)
{
if (curr_node == NULL){
//...
}
//...
}
或者它也可以在实现部分设置,但只需使用 NULL。
关于c++ - 类中默认参数的编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19811081/