아래에이 코드가 있습니다.
#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
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다