Ich habe einige ähnliche Fragen dazu gelesen, aber keine scheint das Problem zu lösen, vor dem ich stehe. Die typische Antwort ist die Umwandlung in die abgeleitete Klasse, aber ich kann das nicht, da ich den abgeleiteten Klassentyp nicht kenne.Wie rufe ich eine abgeleitete Klassenmethode aus der Basisklasse auf?
Hier ist mein Beispiel:
class WireLessDevice { // base class
void websocket.parsemessage(); // inserts data into the wireless device object
}
class WiFi : WireLessDevice { // derived class
GPSLoc Loc;
}
Wireless-Gerät kann auch weiß, dass ich nicht machen Bluetooth, Wi-Max, Cellular, usw. Geräte und somit abgeleitet werden, welche Art von wirelessdevice die Daten zu empfangen werden .
Wenn ein GPS-Paket auf dem Websocket in der Basisklasse empfangen wird, muss ich den Standort des abgeleiteten Geräts aktualisieren.
Ich dachte vielleicht, eine Nachricht über eine Warteschlange zu senden oder einen Event-Handler zu erstellen und die Position in den Event-Argumenten zu senden, aber diese erscheinen etwas klobig, wenn die Daten in der Klasse bleiben.
Ist etwas in die Sprache eingebaut, das es mir erlauben würde, mein abgeleitetes Gerät von der Basisklasse anzurufen, ohne den Typ zu kennen?
Werfen Sie einen Blick auf Dekoration Muster. Ihr Problem scheint Ihr falsches Design zu sein. –
Keine Notwendigkeit für einen Dekorator ... Werfen Sie einen Blick auf abstrakte oder virtuelle Methoden ... – Crisfole