c++ - 类中默认参数的编译器错误

标签 c++ class optional-parameters

我试图将第二个可选参数传递给我的搜索函数:

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/

相关文章:

c++ - Libuv:保护事件循环免受并发访问

java - 在派生类的泛型对象上调用基方法

c# - 如何传递可选参数

class - class() : and class(object): in python 2. 6-3.x 之间有区别吗?

jQuery 单击更改 div 上的切换类

c# - 依赖注入(inject)可选参数

c++ - std::optional 参数是否创建拷贝?

c++ - "Fatal error C1083: Cannot open include file"但我已将目录添加到项目

c++ - C++中python dict和tr1::unordered_map的区别

c++ - 由 ShellExecuteEx 打开时,Windows 文件属性对话框中缺少数据