Implementierte Rein Virtuelle Methode?

Hier ist das problem: ich erhalte die implementierte rein virtuelle Methode Fehler beim kompilieren. Ich habe bisher alle die rein virtuellen Methoden der abstrakten Basisklasse. Irgendwelche Ideen?

hier ist die abstrakte Basis-Klasse:

class record{
public:
    virtual int getID()=0;
    virtual record *clone(); 
};

und die Umsetzung:

class sdata: public record{
public:
    sdata(std::string s = ""){data=s; ID=atoi(data.substr(0,8).c_str());}
    virtual int getID(){return ID;}
private:
    std::string data;
    int ID;
};

sorry, hier ist die komplette Fehlermeldung:

Implementierte rein virtuelle Methode 'getID' in 'record'

Vielleicht dieses bit des Codes den Fehler verursacht, dann:

int hashTable::hash(record *x) {
   return floor(m * (x->getID() * A - floor(x->getID() * A)));
}
Nicht, ohne dass der entsprechende code...
Vergessen Sie nicht, die consts. Aber ja, sehen Sie den code könnte in der Lage sein zu helfen ein wenig.
Siehe z.B. stackoverflow.com/questions/2609299/....
Funktioniert Klasse Datensatz haben eine Implementierung von clone()? Vielleicht ist dein compiler hält es für pure virtual, wenn keine Implementierung vorhanden, die irgendwo in der Hierarchie.
Sie sollte wohl zeigen den code, der den Fehler erzeugt. Fügen Sie auch override auf die Erklärung von getID in der abgeleiteten Klasse und sehen was passiert.

InformationsquelleAutor mlclmss | 2013-04-03

Schreibe einen Kommentar