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
Parameternamen sind nicht wichtig... verschiedene Namen sind sinnvoll, damit etwas nicht mit etwas verwechselt wird...
Sie können einige Werte in die Funktionsdeklaration schreiben,
und andere Werte in der Funktion selbst
oder die Parameter können überall gleich benannt werden, je nachdem, was für den Codewriter bequemer ist
In demselben Lehrbuch wurde der Code gefunden:
Seltsame Sache mit dem Konstruktor:
Warum gibt es hier einen Return-Operator?Dies ist das erste Mal, dass ich diesen Operator im Konstruktor verwendet sehe. Der Konstruktor wird nämlich automatisch aufgerufen. Und eine Ausgabe wird es sowieso geben. Ist dieser Operator im Konstruktor sinnvoll?
In demselben Lehrbuch wurde der Code gefunden:
Seltsame Sache mit dem Konstruktor:
Warum gibt es hier einen Return-Operator?Dies ist das erste Mal, dass ich diesen Operator im Konstruktor verwendet sehe. Der Konstruktor wird nämlich automatisch aufgerufen. Und eine Ausgabe wird es sowieso geben. Ist dieser Operator im Konstruktor sinnvoll?
In diesem Beispiel wird sie nicht benötigt, aber es kann eine komplexe Initialisierung geben, wenn ein frühzeitiges Verlassen erforderlich ist.
Der Konstruktor und der Destruktor sind normale Funktionen. Nur der Standardkonstruktor und -destruktor werden automatisch aufgerufen. Die anderen werden vom Benutzer aufgerufen.
Im Lehrbuch wird dieses Beispiel im Zusammenhang mit Polymorphismus genannt:
Es gibt eine Sache, die ich nicht verstehe. Wenn wir Child-Funktionsobjekte für Aufrufe verwenden, d.h. abgeleitete Methoden CCircle und CSquare, dann kann GetArea() area unter Umgehung der Deklarationen in der Basisklasse berechnet werden. D.h. erstellen Sie in einer Basisklasse überhaupt keine virtuellen Funktionen, und erstellen Sie in abgeleiteten Methoden eine reguläre Methode und das war's! Warum brauchen wir also eine virtuelle Funktion?
Es ist interessant, ein adäquates und logisches Beispiel zu sehen, an dem man erkennen kann, dass virtuelle Funktionen einen gewissen Nutzen bringen. Denn was ich gesehen habe, war nicht logisch, zumindest für mich. Ich würde es trotzdem gerne verstehen.
Im Lehrbuch wird dieses Beispiel im Zusammenhang mit Polymorphismus genannt:
Es gibt eine Sache, die ich nicht verstehe. Wenn wir Child-Funktionsobjekte für Aufrufe verwenden, d.h. abgeleitete Methoden CCircle und CSquare, dann kann GetArea() area unter Umgehung der Deklarationen in der Basisklasse berechnet werden. D.h. erstellen Sie in einer Basisklasse überhaupt keine virtuellen Funktionen, und erstellen Sie in abgeleiteten Methoden eine einfache Methode und das war's! Warum brauchen wir also eine virtuelle Funktion?
Es ist interessant, ein adäquates und logisches Beispiel zu sehen, an dem man erkennen kann, dass virtuelle Funktionen einen gewissen Nutzen bringen. Denn was ich gesehen habe, war nicht logisch, zumindest für mich. Ich würde es trotzdem gerne verstehen.
Dies ist das einfachste Beispiel für das Verständnis von Polymorphismus. Um es schnell zu bekommen.
Es gibt komplizierte Fälle. Sie werden es anwenden, wenn Sie es brauchen. Es hat keinen Sinn, sich jetzt zu bemühen. Wenn die Aufgabe erledigt ist, werden Sie darüber nachdenken müssen.
Ich habe zum Beispiel eine Basisklasse mit allen möglichen Lese-/Schreibschnittstellen. Sie hat auch private virtuelle Methoden (insgesamt 2 - Lesen/Schreiben), die diese Schnittstelle in der Basisklasse mit abgeleiteten Klassen verbinden. Eigentlich können die abgeleiteten Klassen überall dort sein, wo mit Dateien gearbeitet wird (Dateien, Mapping, Kanäle, Internet). Jede der abgeleiteten Klassen definiert diese virtuellen Methoden anders, aber alle Klassen haben die gleiche Schnittstelle zur Basisklasse.
Im Lehrbuch wird dieses Beispiel im Zusammenhang mit Polymorphismus genannt:
Es gibt eine Sache, die ich nicht verstehe. Wenn wir Child-Funktionsobjekte für Aufrufe verwenden, d.h. abgeleitete Methoden CCircle und CSquare, dann kann GetArea() area unter Umgehung der Deklarationen in der Basisklasse berechnet werden. D.h. keine virtuellen Funktionen in der Basisklasse erstellen, und in abgeleiteten Methoden eine einfache Methode erstellen und das war's! Warum brauchen wir also eine virtuelle Funktion?
Es ist interessant, ein adäquates und logisches Beispiel zu sehen, an dem man erkennen kann, dass virtuelle Funktionen einen gewissen Nutzen bringen. Denn was ich gesehen habe, war nicht logisch, zumindest für mich. Ich möchte es trotzdem verstehen.
Ich werde versuchen, ein kleines Beispiel zu skizzieren:
Dank dieser Struktur müssen wir nicht in den Arbeitsalgorithmus einsteigen, der sehr umfangreich und komplex sein kann (hier ist alles vereinfacht), wir müssen nur einen weiteren Nachkommen, m3 in der Aufzählung und einen weiteren Fall in switch hinzufügen. Das heißt, wir haben die Eingabedaten vereinheitlicht, wodurch eine Bearbeitung im Hauptteil des Programms vermieden wird.
Dies ist natürlich nur dann sinnvoll, wenn der Arbeitsalgorithmus eine Vielzahl von Typen als Eingabe zulässt. Wenn es nur einen Typ gibt, ist all dies nutzlos.
Im Lehrbuch wird dieses Beispiel im Zusammenhang mit Polymorphismus genannt:
Es gibt eine Sache, die ich nicht verstehe. Wenn wir Child-Funktionsobjekte für Aufrufe verwenden, d.h. abgeleitete Methoden CCircle und CSquare, dann kann GetArea() area unter Umgehung der Deklarationen in der Basisklasse berechnet werden. D.h. erstellen Sie in einer Basisklasse überhaupt keine virtuellen Funktionen, und erstellen Sie in abgeleiteten Methoden eine einfache Methode und das war's! Warum brauchen wir also eine virtuelle Funktion?
Es ist interessant, ein adäquates und logisches Beispiel zu sehen, an dem man erkennen kann, dass virtuelle Funktionen einen gewissen Nutzen bringen. Denn was ich gesehen habe, war nicht logisch, zumindest für mich. Ich würde es trotzdem gerne verstehen.
Hier ist ein einfaches Beispiel:
Wir verwenden die Funktion GetArea(), ohne zu wissen, für welche Form sie aufgerufen wird.Ich habe diesen Setter in einer Klasse:
Der Compiler bekämpft diese Zuweisung von Elementen an das ColorBySend-Array im Allgemeinen wie folgt:
Womit hat das zu tun? Ist es wirklich notwendig, die Werte Element für Element zuzuweisen? Ist es nicht möglich, dies als Liste zu tun? Worauf bezieht sie sich? Schließlich wird die Zuweisung auch im Lehrbuch so vorgenommen...Ich habe diesen Setter in einer Klasse:
Der Compiler schwört auf diese Zuweisung von Elementen an das ColorBySend-Array im Allgemeinen wie folgt:
Womit hat das zu tun? Ist es wirklich notwendig, die Werte Element für Element zuzuweisen? Ist es nicht möglich, dies als Liste zu tun? Was hat das damit zu tun? Schließlich werden die Aufgaben auch im Lehrbuch so gestellt...ein Variablenausdruck, den der Compiler nicht verstehen kann. Leider.