
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Haben Sie eine Sicherheitslücke gefunden? )
Wäre es nicht besser, Polymorphismus zu verwenden?
Ungefähr:
Die Sache ist die, dass die Erbenklassen CChartObjectRectLabel, CChartObjectButton und CChartObjectEdit ihre eigenen Methoden haben, auf die zugegriffen werden muss. Und die Basisklasse CChartObject aus der Standardbibliothek hat nicht die gleichen virtuellen Methoden.
Zu meinem obigen Beispiel...
Zugriff auf Methoden von Erbenklassen?
...dann sieht es so aus:
Das stimmt. Es ist unorthodox, direkt so zu casten. In Plus gibt es dynamic_cast speziell für diesen Zweck, hier kann man es nicht ganz korrekt casten und es ist eine potentielle Quelle für implizite und ernsthafte Fehler. Und im Ernst, es ist nicht viel besser als unsichere Zeiger und Referenzen.
Ja, bevor ich hier im Forum eine Frage gestellt habe, habe ich im Netz gefunden, dass C++ den dynamic_cast-Operator hat (ein Mechanismus der dynamischen Datenidentifikation).
Jetzt schaue ich mir den obigen Link an:
Es ist also eine obligatorische Bedingung? Und wenn es keine virtuellen Methoden in der Basisklasse gibt, dann wird dynamic_cast nicht funktionieren?
P.S. >>> Hier lese ich gerade mehr über dynamic_cast (MSDN).
Scheiße, und danach reden Sie von Sprachsicherheit?
Wahrscheinlich denken Sie, dass Sie wie in C/C++ frei auf alles casten können.
Dem ist nicht so, und an der Sicherheit gibt es nichts auszusetzen.
Wahrscheinlich denken Sie, dass Sie wie in C/C++ frei auf alles casten können.
Das ist nicht der Fall, und es gibt keine Sicherheitsprobleme.
Ich bin zufällig auf diesen Fehler gestoßen, der Ihre Worte zu bestätigen scheint. )
Das ist nicht der Fall, und es gibt nichts, was gegen die Sicherheit spricht.
Nein, es ist unmöglich, dynamic_cast zur Kompilierzeit zu prüfen.
Der obige Kommentar zeigt das Ergebnis der Casting-Prüfung in rantime.
Es ist sehr starr, es funktioniert auf RTTI-Mechanismus, weil wir genau wissen, wer wer im Falle von Geistern ist.
Der obige Kommentar zeigt das Ergebnis der Casting-Prüfung in rantime.