Problem bei löschen-Funkiton (Hashtables/Doublehashing)

Marimi

Mitglied
Hallo, hab hier ein klitzekleines Problem mit einer Methode in meinem Programm, da ich folgende Fehlermeldung erhalte und ich mit meiner Recherche dazu icht weiterkomme:
error: statement cannot resolve address of overloaded function|

Die Codeteile stammen aus meinem Programm wo ich eine Doublehashing-Struktur mit Seletion Sort implementieren muss. Da der ganze Code zu lang wäre hier die entsprechenden Methoden:

Code:
void leeren(const E e, size_t y) {hashv = y; state = 00, data = 0;}
Code:
using Container<E>::remove;
virtual void remove( const E e[], size_t len)
Code:
template <typename E>
void Doublehashing<E>::remove (const E e[], size_t len){

    size_t tmax = nmax;
        for(size_t i = 0; i < len ; i++) {
            size_t hashwert = hashValue(e[i]) % nmax;
            tmax = nmax;
                for (int k=hashwert; k < tmax; k=k+1){
                    values[k].leeren;
                    k = k + tmax;

                        if (k == (nmax-1)){
                        k = -1;
                        tmax = hashwert;
                    }
                }
        }
}

Vielleicht kann mir wer weiterhelfen
Vielen Lieben Dank
Marimi
 
Hi

betrifft die Meldung jetzt remove oder leeren?

Bei remove: Ist die Klasse in einer h-Datei und die eigentliche Funktion in einer cpp?
Was ist, wenn du die Funktion direkt in die class in der h-Datei schreibst
(ahc wenn man das sonst nicht macht)?

Beim Aufruf von leeren im dritten Codeteil fallen mir die fehlenden Parameter auf...
 
die meldung dritt im remove auf genu hier: values[k].leeren;

das leeren oben ist deswegen so aufegebaut weil der hashtable in einem array gespeichert wird :) die methode zum einfügen hat auch eine zusätzliche fillin methode die so aufgebaut ist wie leeren und da funktionierts :)
Die Datein sind so aufgebaut: es gibt eine Container.h die in meine Doublehashing.h inkludiert wurde und zum testen gibts ein simpletest.C Datei, Die Funktinen die ich gepostet habe sind alle aus der Doubleashing.h
 
weil der hashtable in einem array gespeichert wird
Das kann ja sein...
die methode zum einfügen hat auch eine zusätzliche fillin methode die so aufgebaut ist wie leeren und da funktionierts :)
...aber bist du dir da wirklich sicher?

Wenn das
C++:
values[k].leeren;
das selbe Leeren wie das ist:
C++:
void leeren(const E e, size_t y) {hashv = y; state = 00, data = 0;}
dann stimmt da was nicht.

PS: Bitte Netiquette 15 beachten.
 
Zurück