C ++에서 "오류 : 비 정적 데이터 멤버 'tree :: root'의 잘못된 사용"오류를 수정하는 방법은 무엇입니까?

Zozzizzez

아래에이 코드가 있습니다.

#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

이 문제를 해결하도록 도와주세요. 미리 감사드립니다 ...

Barmar

인수 기본값은 메서드의 범위에서 평가되지 않습니다. 기본 인수를 사용하는 대신 오버로딩을 사용하십시오.

void inorder_traverse() {
    inorder_traverse(root);
}
void inorder_traverse(node *temp) {
    // code
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관