2 Stimmen

Funktioniert Polymorphismus nicht so, wie ich es mir vorgestellt habe?

Ich habe eine Superklasse, die Informationen über Autoaufkleber verarbeitet. Ich habe eine Unterklasse, die spezielle Aufkleberinformationen für eine Transaktion verwaltet. Ich habe eine spezielle Überschreibung in der Transaktion decal, die verwendet wird, um für bestimmte Dinge zu überprüfen, bevor ein decal # gesetzt werden kann. Das Problem, das ich habe, ist, dass ich manchmal Informationen über ein generisches Decal-Objekt abrufen und in mein Transaktions-Decal setzen muss. Zum Beispiel:

TransactionDecal myTransactionDecal = new TransactionDecal();
Decal myGenericDecal = new Decal();
myTransactionDecal = (TransactionDecal) myGenericDecal.getGenericDecal();

Aber ich erhalte einen Laufzeitfehler, der mir mitteilt, dass ich nicht zwischen den Typen umwandeln kann. Was genau mache ich falsch, und ist dies der richtige Weg, um es zu gehen? Vielen Dank!

0voto

Es hängt davon ab, was Sie mit myTransactionDecal machen wollen, insbesondere ob Sie die Datenelemente von TransactionDecal benötigen. Wie wäre es, einen Konstruktor hinzuzufügen?

TransactionDecal::TransactionDecal(const Decal &);

Oder vielleicht verschieben Sie die gewünschte Funktionalität einfach in Decal oder in eine Nicht-Mitglieder-Funktion?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X