Extended Class Frage



  • Hi ich machs mal kurz und schmerzlos.

    Ich habe eine Klasse A die Klasse B einer Grafikengine BLA erweitert.

    Ich benutze einen MouseEvent in verbindung mit den in BLA eingebauten Klassen und deren Funktionen welcher mir die betreffende Instanz der Klasse B als Ergebniss liefert.

    Da ich aber eine Instanz vom Typ der Klasse A für einen Funktionsaufruf benötige caste ich die Instanz der Klasse B in eine Instanz der Klasse A welche ja B um diverse Funktionen erweitet und sende diesen an die gewünschte Funktion.

    Soweit klappt das auch noch.

    Nun versuche ich später auf eine Funktion in der gecasteten Klasse welche mir ein hardcoded Array der Klasse A zurückliefert und erhalte einen SIGSEGV (segmentation fault) in der ersten Zeile nach einer Schleife die genau dieses Array durchlaufen soll.

    Das Array holen klappt also, in der For Schleife wird das gesammte Array durchlaufen und in der ersten Zeile danach (die in der der SIGSEGV auftritt) der zutraffende Wert in eine Variable gespeichert.

    Nun die Masterfrage:
    kann das so überhaupt klappen oder komme ich nicht umhin alle benötigten klassen dahingehend zu erweitern das mir direkt die Instanz der klasse A zurückgeliefert wird?



  • Ein bischen Code wäre ganz gut.



  • Du kannst nicht eine Objekt der Klasse B verwenden, wenn ein Objekt der Klasse A verlangt wird. Das ist murks ... (auch wenn es zu klappen scheint).



  • Guten Morgen nochmal,

    @Tachyon, das Project ist im moment recht gross und zugegebenermassen unaufgeräumt daher hatte auf code extra verzichtet, er würde mehr unklarheit reinbringen.

    @knivil, ja das dachte ich mir fast aber anscheinend klappts nun im nachhinein mehr oder weniger doch , allerdings durch ein

    eventObject->getParrent();//eventObject = Instanz von Klasse B
    

    .

    Ich werde ggf. beim weiteren entwikeln des Projekts eine Klasse AM erstellen welche mehrere Klassen(unter anderem auch Klasse A) erweitert, so kann ich auch Instanzen anderer Klassen mit den selben Variablen und Funktionen wie in Klasse A entahlten verwenden und muss lediglich den eingabe typ einer Funktion neu festlegen.

    Danke nochmals an alle welche sich Zeit genommen haben.


Anmelden zum Antworten