我在下面的代码:
#include <bits/stdc++.h>
#define DEFAULT_NODE_VALUE 0
using namespace std;
class node{
public:
int val;
node* right = 0;
node* left = 0;
node(int a):val(a){}
};
class tree{
public:
node* root = new node(DEFAULT_NODE_VALUE);
tree(int inp_val){
root->val = inp_val;
}
void inorder_traverse(node* temp = root){
}
};
我想在temp
函数中为inorder_traverse
参数设置默认参数,但是当我编译以上代码时,编译器显示如下:
22:37: error: invalid use of non-static data member 'tree::root'
17:8: note: declared here
请帮助我解决此问题。提前致谢...
最佳答案
参数默认值不在方法范围内评估。不要使用默认参数,而应使用重载。
void inorder_traverse() {
inorder_traverse(root);
}
void inorder_traverse(node *temp) {
// code
}
关于c++ - 如何修复 “error: invalid use of non-static data member '树::root'” error in c++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65462696/