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
Wie gut es ist, lesen zu können... :)
Auch kein schlechter Ansatz, obwohl, wie ich verstanden habe, beide Ansätze auf der Übermittlung/Lesung nur eines Parameters (wenn auch unterschiedlicher Art) beruhen.
Aber wie löst man das Problem, wenn man viele Parameter hat und nicht alle in einer Basisklasse unterbringen kann?
Soweit ich verstanden habe, müssen Sie einen Index des Parameters eingeben, den Sie übergeben (Sie können auch ein Array in einer Klasse erstellen, in dem die Parameter nach Index gespeichert werden)?
Ich verstehe es auch nicht...
In meinem Beispiel gibt es einen Index, nur ist er nicht numerisch in einer expliziten Form, sondern ein enum....
Vergessen Sie es, das ist es nicht wert.
Interesting:
Im Allgemeinen hathttps://www.mql5.com/ru/forum/3566/page6#comment_58280 nach einer Diskussion über das Problem einen Antrag an den SR geschickt.
1. Ich weiß es nicht, ich weiß es nicht.
Ich glaube nicht, dass die Entwickler bestimmte Schritte unternehmen und die Funktionalität zugunsten der Sicherheit opfern werden (und das zu Recht, einerseits).
Rückmeldung.
Die Bewerbung sah folgendermaßen aus:Anregung:
1. Erläutern Sie den Abschnitt "Polymorphismus" im Handbuch "Polymorphismus" im Hinblick darauf, wie Array Shapes[10] korrekt mit Instanzen von Klassen gefüllt werden, die von CShape abgeleitet sind (geben Sie ein Beispiel).
2. Prüfen Sie, ob die Zeichenkette richtig geschrieben ist:
3. Erläutern Sie, ob bei der Deklaration von Klassen geschweifte Klammern unmittelbar nach dem Namen der deklarierten Klasse gesetzt werden sollen oder nicht:
class CShape{};
class CCircle{} :public CShape
class CSquare{} :public CShape
Antwort:
Eine ausführliche Beschreibung wird der Hilfe hinzugefügt, hier ist ein Auszug daraus:
Wir nehmen an, dass unser Programm Objekte unterschiedlichen Typs (CCircle und CSquare) verwendet, die jedoch von einem Basistyp CShape geerbt wurden. Polymorphismus ermöglicht es uns, ein Array von Objekten des Basistyps CShape zu erstellen, aber wenn wir dieses Array deklarieren, sind die Objekte selbst noch unbekannt und ihr Typ ist nicht definiert.
Die Entscheidung, welche Art von Objekt in jedem Element des Arrays enthalten sein wird, wird während der Ausführung des Programms getroffen. Dies impliziert eine dynamische Objekterzeugung für die entsprechenden Klassen und damit die Notwendigkeit, Objektzeiger anstelle der Objekte selbst zu verwenden.
Um Objekte dynamisch zu erzeugen, wird der new-Operator verwendet; jedes solche Objekt muss unabhängig und explizit durch den delete-Operator gelöscht werden. Daher deklarieren wir ein Array von Zeigern des Typs CShape und erstellen ein Objekt des erforderlichen Typs für jedes seiner Elemente(new_class_name), wie im Beispielskript gezeigt:
Beachten Sie, dass Sie beim Löschen eines Objekts mit dem delete-Operator den Typ seines Zeigers überprüfen sollten. Sie können nur Objekte mit dem Zeiger POINTER_DYNAMIC löschen, bei Zeigern eines anderen Typs erhalten Sie einen Fehler.
Danke für den Beitrag, wir haben №2 und №3 korrigiert. Wird in neuen Versionen der Hilfe enthalten sein
Frage. Die Standardbibliothek verwendet die folgenden Zeilen
Das Referenzhandbuch sagt: "const specifier ist nicht anwendbar auf Mitglieder von Strukturen und Klassen". Was bedeutet die Verwendung von const in einer Klassenmethode, und welche Regeln gibt es für die Verwendung in solchen Fällen?
Yedelkin:
...............
Was bedeutet die oben beschriebene Verwendung von const in einer Klassenmethode, und welche Regeln gibt es für die Verwendung in solchen Fällen?
Frage. Die Standardbibliothek verwendet die folgenden Zeilen
Das Referenzhandbuch sagt: "const specifier ist nicht anwendbar auf Mitglieder von Strukturen und Klassen". Was bedeutet die Verwendung von const in einer Klassenmethode, und welche Regeln gibt es für die Verwendung in solchen Fällen?
Ein Struktur-/Klassenmitglied ist eine Sache, aber eine Methode ist eine andere.
Eine Methode, die als const beschrieben wird, bedeutet, dass sie den Zustand/die Mitglieder ihrer Klasse nicht verändert. Das heißt, nach dem Aufruf einer solchen Methode bleibt der interne Zustand der Klasse unverändert. Es wird verwendet, um dem Compiler zusätzlich mitzuteilen, dass er auf Versuche, Klassenmitglieder zu ändern, prüfen soll.
Ein Struktur-/Klassenmitglied ist eine Sache, eine Methode eine andere.
Eine Methode, die als const beschrieben wird, bedeutet, dass sie den Zustand/die Mitglieder ihrer Klasse nicht verändert. Das heißt, der interne Zustand der Klasse bleibt nach dem Aufruf dieser Methode unverändert. Es wird verwendet, um dem Compiler zusätzlich mitzuteilen, dass er auf Versuche, Klassenmitglieder zu ändern, prüfen soll.
Wow. Ich danke Ihnen! Und ich habe mir den Kopf zerbrochen.
Übrigens, eine logische Frage, wenn wir schon beim Thema sind - es gibt kein Handbuch und es wird auch nicht erwartet?
Wie könnte sie verwendet werden? Weil die Themen nicht miteinander interagieren,
Wenn die Daten frei zwischen den Threads übertragen werden könnten, wäre eine solche Anweisung in der Tat erforderlich.
Guten Tag.
Eine solche Frage
Zum obigen Code
Was habe ich falsch gemacht oder ist es generell unerreichbar im MT5?
Ich möchte (wie ich denke, ist offensichtlich) - um überschriebene Namen in Dateinamen-Variablen zu erhalten...