0

二分木を管理するプログラムを作成していますが、ここで問題が発生します。

void Arbol :: insertar(Nodo*& p, float clave)
{
    if(p == NULL){
        p = new Nodo(clave);
    }else if(clave < p->getclave()){
        insertar(p->getsubarbol_izq(), clave);
    }else{
        insertar(p->getsubarbol_der(), clave);
    }
}

Nodo *&は、ツリー(Arbol)の各ノード(nodo)のポインターの参照です。

p-> getsubarbol_der()は、nodo(nodo *)へのポインターを返します。

しかし、Arbolクラスのinsertarメソッドを呼び出しているときにこのエラーが発生しました:エラー:'Arbol :: insertar(Nodo *、float&)'|を呼び出すための一致する関数がありません

4

1 に答える 1

3

基本的な問題は、一時的なものを返すことであり、非参照p->getsubarbol_der()によってその一時的なものをに渡そうとしていると思います。constinsertar()

于 2012-04-28T17:26:24.633 に答える