Fehler, Irrtümer, Fragen - Seite 1132

 
A100:

Kein Fehler beim Versuch, einen als const deklarierten Zeiger zu ändern

Ist es erlaubt, einen Konstruktor in einem privaten Abschnitt zu deklarieren? Bekommt der Compiler keine Fehlermeldung?
 

Die geschätzten Entwickler haben also auf den Antrag reagiert:

Support-Team2014.04.16 15:58

Wir werden eine Stop-Flagge erstellen, aber es macht nicht viel Sinn, sie in Indikatoren zu verwenden. Indikatoren sollen in OnCalculate keine besonders umfangreichen Berechnungen oder Schleifen durchführen, da sie im Gegensatz zu Expert Advisors und Skripts nicht in separaten Threads ausgeführt werden. Das bedeutet, dass Sie mit der Schleifenbildung des Indikator-Threads aufhören, die Historie zu bilden (Synchronisierung, Hinzufügen von Ticks usw.).
Support-Team 2014.04.16 15:59
Status:OffenAbgeschlossen
 
Fleder:
Ist es erlaubt, einen Konstruktor in einem privaten Abschnitt zu deklarieren? Der Compiler beschwert sich nicht?

Das können Sie, denn das ist an sich nicht umstritten, und jede Einschränkung muss begründet werden. Ein solches Objekt kann innerhalb der Klasse selbst erstellt werden, und ein Zeiger auf ein solches Objekt kann außerhalb der Klasse erstellt werden

 
A100:

Das können Sie, denn das ist an sich nicht umstritten, und jede Einschränkung muss begründet werden. Ein solches Objekt kann innerhalb der Klasse selbst erstellt werden, und ein Zeiger auf ein solches Objekt kann außerhalb der Klasse erstellt werden

Wenn es möglich ist, warum sagt der Compiler, dass es nicht möglich ist:

 
mql5:
Jetzt ist es obligatorisch, statische Mitglieder zu platzieren.

Ich danke Ihnen. Es ist jedoch nicht klar, wo sie platziert werden sollen... Meine ersten Versuche, sie in die Wurzel, vor die Funktion oder direkt neben die Klassen zu schieben, waren erfolglos - der Fehlertyp änderte sich einfach in Neudefinition. Aber gut, ich werde es noch einmal versuchen, vielleicht finde ich ja einen guten Platz.


Fleder:Am besten ist es, wenn Sie sie gar nicht erst benutzen.

Nun, sagen Sie mir auch... Wie soll man sonst all diese Informationen speichern, die einmal in X (irgendwo in einer Minute, irgendwo in einer ganzen Woche) berechnet werden müssen, und jeden Tick in mehreren Klassen verwenden? Oder glauben Sie, dass es besser ist, verschiedene Arrays mit Nachrichten und Widerstandsniveaus neu zu koppeln und Statistiken für die letzten 10000 Candlesticks jeden Tick zu berechnen? :) Und an manchen Stellen sogar mehrmals pro Tick, getrennt für jedes Objekt der Klasse? Dann, so vermute ich, wird ein Lauf im Tester für eineinhalb Jahre nicht mehr eine Stunde dauern, wie es jetzt der Fall ist, sondern das ganze Jahr und eine Hälfte :)
 
Lone_Irbis:

Ich danke Ihnen. Es ist jedoch nicht klar, wo sie platziert werden sollen... Meine ersten Versuche, sie in die Wurzel, vor die Funktion oder direkt neben die Klassen zu schieben, waren erfolglos - der Fehlertyp änderte sich einfach in Neudefinition. Aber gut, ich werde es noch einmal versuchen, vielleicht finde ich ja den richtigen Ort.


Dann sagen Sie es mir auch. Wie kann ich sonst all diese Informationen speichern, die einmal in X berechnet werden müssen (manchmal für eine Minute, manchmal für eine ganze Woche) und jeden Tick in mehreren Klassen verwenden? Oder glauben Sie, dass es besser ist, jeden Tick neu zu beginnen, um Arrays mit Nachrichten und Widerstandsniveaus zu analysieren und Statistiken für die letzten 10000 Candlesticks zu berechnen? :) Und an manchen Stellen sogar mehrmals pro Tick, getrennt für jedes Objekt der Klasse? Dann vermute ich, dass in den Tester für ein Jahr und eine Hälfte laufen wird nicht eine Stunde dauern, wie es jetzt ist, aber das ganze Jahr und eine Hälfte :)
Und es ist auch besser, keinen Tester zu verwenden.
 
Fleder:

Wenn Sie es können, warum sagt der Compiler, dass Sie es nicht können?

Es sagt mir nicht

class B {
        B() {}
};
void OnStart()
{
        B *b;
}
Nochmals: Ein solches Objekt kann innerhalb der Klasse selbst erstellt werden, aber ein Zeiger auf ein solches Objekt kann auch außerhalb der Klasse erstellt werden
 

Ich verstehe nicht, wie man Server beim Verbinden scannen kann? Zuvor gab ich den Namen des Servers und die Liste erschien, fügte ich die notwendigen (Bild 2, gibt es hinzugefügt Server vor etwa vierzehn Tagen) In Bild ein nicht mehr gescannt wird die notwendigen Server, kann ich nicht hinzufügen. Was ist nicht mehr möglich oder wie machen Sie es selbst?


 
Fleder:
Und es ist auch besser, keinen Tester zu verwenden.

Ja, und Devisen werden am besten überhaupt nicht verwendet. Oder der Computer, was das betrifft :) Das ist nicht gut für dich.

Wie auch immer, es gibt bereits eine Lösung. Es ist nicht sehr schön, aber es funktioniert. Die Lösung heißt "Zur Hölle mit deinem OOP". %) Die Fehler wurden beseitigt, indem alle statischen Variablen aus den Klassen herausgesägt, das Präfix static entfernt und sie ordentlich nebeneinander gestapelt wurden.

Im Allgemeinen weiß ich nicht, warum die Entwickler statische Variablen nicht mochten und warum sie die Funktion der automatischen Variableninitialisierung entfernen mussten, aber wenn ich muss, dann muss ich. Wir müssen Umgehungslösungen finden...

 
Lone_Irbis:

Ja, und Devisen werden am besten überhaupt nicht verwendet. Oder der Computer, was das betrifft :) Das ist ganz und gar nicht gesund.

Wie auch immer, es gibt bereits eine Lösung. Es ist nicht sehr schön, aber es funktioniert. Die Lösung heißt "Zur Hölle mit deinem OOP". %) Die Fehler wurden beseitigt, indem alle statischen Variablen aus den Klassen herausgesägt, das Präfix static entfernt und sie ordentlich nebeneinander gestapelt wurden.

Im Allgemeinen weiß ich nicht, warum die Entwickler statische Variablen nicht mochten und warum sie die Funktion der automatischen Variableninitialisierung entfernen mussten, aber wenn ich muss, dann muss ich. Wir müssen Umgehungslösungen finden...

Die einfache automatische Initialisierung wurde durch eine explizite Platzierung ersetzt.

Und wenn man nach Perfektion strebt, dann:

1. Die beste Art zu handeln ist, nicht zu handeln.

(2) Die beste Art, das Leben zu leben, ist, nicht geboren zu werden.