Virtuelle Funktion wird in Kindklassen nicht erkannt bei zweiter Funktion mit dem Namen???



  • Hallo!

    Ich habe eine eigene Recordsetklasse (abgeleitet von CRecordset). In dieser Klasse habe ich die Funktion

    virtual bool Suche(long f_lID);
    

    Wenn ich jetzt in einer Kindklasse die Funktion

    long Suche(CString f_strPlz, CString f_strOrt);
    

    habe, bekomme ich folgenden Fehler:

    error C2660: 'Suche' : Funktion akzeptiert keine 1 Parameter
    

    Wenn ich eine virtuelle Funktion habe, gibt es die doch in allen abgeleiteten Klassen. Funktioniert ja auch bei den Klassen, wo es keine weitere Suche-Funktion gibt.
    Und virtuelle Funktionen bleiben doch "unangetastet" wenn die andere Funktion andere Parameter hat, oder? 😕

    Wo hab ich bei den Grundlagen gepennt? Ich helfe mir momentan durch Einbau einer Dummyfunktion, die nur die Basisklasse aufruft, aber das ist doch idiotisch... 🙄

    Danke!



  • hm was macht eigentlich das virtual? In dem komischen "jetzt lerne ich vc++" buch hab ich den abschnitt wo virtual erklärt wird nur überflogen. Aber eigentlich müsste die abgeleitete Klasse die suche fkt der basisklasse enthalten.

    Lösche mal das virtual weg und schau mal obs dann geht. Und ist die "bool suche()" denn bei public deklariert? Denn private: Methoden werden glaub ich nicht abgeleitet...

    gruß Chris++



  • Danke für die Antwort Chris, aber im c++ Forum habe ich eine Antwort erhalten, die das gewünschte Ergebnis hat. 🙂
    http://www.c-plusplus.net/forum/viewtopic.php?t=86784

    Dachte, hier guckt keiner mehr rein...

    Das virtual rauslöschen geht nicht - da ich mich hüten werde, es aus der Basisklasse zu löschen. 😉


Anmelden zum Antworten