
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
Wassili, ein Beispiel, bitte!
Mir ist nur ein Fall bekannt, in dem Sie Speicher zuweisen müssen und einen Zeiger darauf benötigen.
Ich bin sicher, Sie können fast immer darauf verzichten. Es ist wünschenswert, keine manuelle Speicherverwaltung zu verwenden. Es gibt immer eine Standardbibliothek, die diese Probleme bereits gelöst hat.
Das Vorhandensein einer dynamischen Typenidentifikation weist in der Regel auf die Krückenarchitektur eines Projekts hin.
Das Vorhandensein einer dynamischen Typenidentifikation deutet auf einen hohen Grad an Polymorphismus und eine höhere Abstraktionsebene hin. Sie erhöht die Verwaltbarkeit und Skalierbarkeit des Projekts. Ermöglicht die Arbeit mit Code auf der Schnittstellenebene und ermutigt den Programmierer, sich nicht mit Implementierungsdetails zu befassen.
Vasily, ich denke, Ihr Beispiel ist unpassend. Es gibt Vorlagen (Makros in µl), die viele Probleme bei der Kompilierung lösen können. Und wenn Sie eine Abwärtskonvertierung vornehmen müssen, haben Sie das Programm schlecht konzipiert (das sagte sogar Straustrup).
Was ist falsch an einem abwärts gerichteten Getriebe mit strenger Typenkontrolle? Straustrup hat dies gesagt, als es noch gar keine Typenkontrolle gab. Wenn Sie nun den abgeleiteten Typ kennen, können Sie die Konvertierung garantieren, bevor sie beginnt, und somit Laufzeitfehler vermeiden.
Die Vorteile der Abwärtskonvertierung liegen jedoch auf der Hand. Der wichtigste ist, dass es auf der Schnittstellenebene funktioniert. Wenn der Konstruktor einer Basisklasse im geschützten Bereich geschlossen ist, handelt es sich um eine Schnittstelle und eine abstrakte Klasse, und wir können mit ihr auf ihrer Ebene arbeiten, ohne die verfeinerte Implementierung ihrer Nachkommen kennen zu müssen. Wenn wir jedoch polymorphes Verhalten in Abhängigkeit vom Instanztyp implementieren, können wir sicherlich die Implementierung der entsprechenden Instanz angeben und z. B. ihre eindeutige Methode aufrufen. Mit virtuellen Funktionen brauchen wir nicht einmal eine Typkonvertierung. Schließlich rufen virtuelle Funktionen die spezifische Implementierung "hinter den Kulissen" auf.
... Bei virtuellen Funktionen ist nicht einmal eine Typumwandlung erforderlich. Schließlich rufen virtuelle Funktionen eine bestimmte Implementierung "hinter den Kulissen" auf.
Was ist falsch an dem fallenden Wurf, wenn die Typen streng kontrolliert werden?
Wenn Sie es richtig schreiben, brauchen Sie es einfach nicht.
P.S.: Ich werfe die Samapal-Typenidentifikation und den Mechanismus der virtuellen Funktionen nicht in einen Topf.
Ein Beispiel aus einer echten MQL-Anwendung:
Ich würde gerne Expertenmeinungen darüber hören, wie sie ein solches Problem lösen würden. Ich persönlich habe das Problem mit Hilfe der dynamischen Typidentifizierung, der "Mustermethode" und der Abwärtskonvertierung gelöst. Es war so gut gelöst, dass ich endlich komplexe interaktive Tabellen mit unregelmäßigen, vollständig anpassbaren Elementen erstellen konnte. Die Ergebnisse sind so greifbar, dass ich es naiv finde, zu behaupten, die "dynamische Identifizierung sei eine Krücke" und die "Abwärtskonvertierung sei böse".
P.S. Pavlick, Sie haben übrigens immer noch nicht beantwortet, was genau an der Herunterkonvertierung falsch ist.
Nein, ich bin weit davon entfernt, ein Experte zu sein. Was ich über das Untersetzungsgetriebe gesagt habe, ist meine Erfahrung, ich bemühe mich, es so zu schreiben, und es wird von Leuten bestätigt, die ich respektiere. Ein Programm zu schreiben, um etwas zu beweisen, ist eine Verschwendung meiner Zeit.
Pavlick, Sie haben übrigens immer noch nicht beantwortet, was genau am Downsizing schlecht ist.
Das ist schwer zu erklären. Ich verstehe, aber ich kann es nicht sagen). Die Bücher werden es wahrscheinlich besser erklären.
Nein, ich bin weit davon entfernt, ein Experte zu sein.