Fehler, Irrtümer, Fragen - Seite 1874
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Wenn Sie sicher sind, dass der Konstruktor privat sein muss, gibt es keine andere Möglichkeit.
Ein intelligenter Zeiger ist ein Objekt, das einen einfachen Zeiger enthält und sicherstellt, dass dieser rechtzeitig entfernt wird.
Dies ist die einfachste Option.
Es gibt auch komplexere intelligente Zeiger.
In diesem Buch wird sehr gut über sie geschrieben: https://rsdn.org/res/book/cpp/cpp_real_programmers.xml
Es ist eigentlich logisch, dass es nicht funktioniert. Sie können den Destruktor eines Smart Pointers nicht vor dem Destruktor der Klasse aufrufen.
Anstatt den Fehler und die Stelle, an der er auftritt, zu spezifizieren, gibt der Compiler einen nicht spezifizierten internen Fehler #112 aus
Ich danke Ihnen! Ich habe verschiedene Varianten ausprobiert, aber sie funktionieren nicht.
Eigentlich ist es logisch, dass es nicht funktioniert. Sie können den Destruktor eines Smart Pointers nicht vor dem Destruktor der Klasse aufrufen.
Versuchen Sie es auf folgende Weise:
Ich weiß nicht, was Sie tun, aber in MQL macht es nur für das Singleton Sinn, den Konstruktor privat zu machen.
Versuchen Sie es auf diese Weise:
Vielen Dank für das ausführliche Beispiel! Leider hat es keinen geschlossenen Konstruktor. Bei einem geschlossenen System funktioniert das natürlich nicht so.
Was ich brauche, ist ein Objekt, das vor allen anderen verborgen ist. Gleichzeitig konnte kein anderes Objekt dieser Art auf irgendeine Weise geschaffen werden.
um dies im Ausführungsprotokoll auszugeben?
Und ist es richtig, dass der __FUNCSIG__ des Konstruktors/Destruktors einen void-Typ ergibt?
Versuchen Sie es auf diese Weise:
Ich brauche ein Objekt, das vor allen anderen verborgen ist. Gleichzeitig konnte ein weiteres Objekt dieser Art auf keine Weise erstellt werden.
So nennt man das:"Singleton".
Warum sagen Sie, dass es für Sie nicht geeignet ist?
Hier ist ein Beispiel für ein Singleton.
Ist es in einem solchen Fall richtig
um dies im Ausführungsprotokoll auszugeben?
Und ist es richtig, dass der __FUNCSIG__ des Konstruktors/Destruktors einen void-Typ ergibt?
Niemals tun
Ist es richtig, dies in einem solchen Fall im Ausführungsprotokoll auszugeben?
Und ist es richtig, dass der __FUNCSIG__ des Konstruktors/Destruktors den void-Typ ausgibt?
Ja, das ist sie.
So nennt man das:"Singleton".
Warum sagen Sie, dass es nicht zu Ihnen passt?
Hier ist ein Beispiel für ein Singleton.
Herzlichen Dank, es funktioniert!
Aber es bleibt immer noch ein Rätsel.
Forum für Handel, automatisierte Handelssysteme und Strategietests
Wanzen, Wanzen, Fragen
fxsaber, 2017.04.25 10:34
Warum wird der Smart-Pointer-Destruktor in Ihrer Version vor dem Klassen-Destruktor aufgerufen und in meiner Version das Gegenteil (auch wenn der Konstruktor öffentlich ist)?