Zeiger auf die Vaterklasse



  • Hallo!

    Wie bekomme ich den this Pointer der Basisklasse in der Abgeleiteten Klasse?

    Ich habe eine Funktion die in der abgeleiteten Klasse ausgeführt wird und als Parameter einen Zeiger auf die Basisklasse erwartet. Wenn ich nun den Zeiger der abgeleiteten Klasse mit "this" übergebe meckert der Compiler.



  • sdadsa schrieb:

    Wenn ich nun den Zeiger der abgeleiteten Klasse mit "this" übergebe meckert der Compiler.

    Danke für diese äusserst hilfreiche Fehlerbeschreibung. 🙄



  • Nexus schrieb:

    sdadsa schrieb:

    Wenn ich nun den Zeiger der abgeleiteten Klasse mit "this" übergebe meckert der Compiler.

    Danke für diese äusserst hilfreiche Fehlerbeschreibung. 🙄

    Entschuldigung.

    Hier ist die ein wenig zusammengeschnittene Info

    4>c.cpp(1591): error C2665: 'MoveEvent::MoveEvent' : none of the 2 overloads could convert all the argument types
    4>e.h(16): could be 'MoveEvent::MoveEvent(wxEventType,Basisklasse *, ...)'
    4>          while trying to match the argument list '(const wxEventType, , Kindklasse *const , ...)'
    4>
    4>Build FAILED.
    

    Bei den anderen Parametern funktioniert es einwandfrei nur das mit der Basisklasse und Kindklasse scheint nicht zu laufen.



  • Ist das wirklich deine Fehlermeldung? Ich frage, weil sie merkwürdige Syntax (zwei aufeinanderfolgende Kommas) enthält. Abgesehen davon wäre ein Minimalcode, der die Fehlermeldung reproduziert, nützlich.

    Denn sowas ist kein Problem:

    struct Base {};
    
    void Function(Base* b) {}
    
    struct MyClass : Base
    {
    	void Method() { Function(this); }
    };
    


  • Nexus schrieb:

    Ist das wirklich deine Fehlermeldung? Ich frage, weil sie merkwürdige Syntax (zwei aufeinanderfolgende Kommas) enthält. Abgesehen davon wäre ein Minimalcode, der die Fehlermeldung reproduziert, nützlich.

    Ups, danke für den Hinweis. Ich habe mich andauernd auf eine falsche "Folgefehlermeldung" gestürzt. Jetzt geht alles, der Fehler war woanders und trivial.


Anmelden zum Antworten