Fragen zu OOP in MQL5 - Seite 66

 

Hier ist die Antwort, warum:

Im roten Rechteck wurde ein Aufruf vonGetMicrosecondCount() hinzugefügt, im blauen Rechteck ein weiterer. Deshalb ist es fast gleichwertig.

 
Dmitry Fedoseev:

Warum wagen Sie es, mir den Code zu zeigen? Ohne den Code können Sie sich Ihre Zeitbilder sonst wohin stecken, wo die Sonne nicht scheint.

 
Vladimir Simakov:

Ups. Bei identischen Maßnahmen betrug der Unterschied nur 30 %.

Vielleicht ist es der Unterricht, der den Overhead verursacht? Natürlich sollte der Compiler auf jeden Fall alles inline schreiben und Unnötiges weglassen. Es ist sinnvoll, die Entwickler darauf hinzuweisen.
 
Alexey Navoykov:
Vielleicht sind es die Klassen, die den Overhead verursachen? Natürlich sollte der Compiler auf jeden Fall alles inline schreiben und Unnötiges weglassen. Es ist sinnvoll, die Entwickler darauf hinzuweisen.

Es hat funktioniert. Die Struktur arbeitete mit der gleichen Geschwindigkeit wie die Funktion und das Makro. Aber die Klasse... weit zurück.

 
Dmitry Fedoseev:

Es hat funktioniert. Die Struktur arbeitete mit der gleichen Geschwindigkeit wie die Funktion und das Makro. Aber die Klasse... weit zurück.

Im Grunde hatte ich schon immer eine solche Vorahnung, aber ich bin nie dazu gekommen, sie zu testen. Deshalb habe ich versucht, eine unnötige Deklaration der Klasse zu vermeiden und sie als Struktur zu deklarieren, insbesondere wenn sie auf dem Stack übergeben werden soll.
 

Ich habe Ratschläge gegeben, wie man auf private Methoden/Felder in SB zugreifen kann und habe diesen Haken selbst im Forum aufgeschnappt, ich weiß nicht mehr, wer ihn vorgeschlagen hat.

Ich war überrascht, als ich feststellte, dass ich wie üblich Ratschläge erteilte, ohne mich an die Terminologie zu halten. Es war kein Haken, sondern ein Anti-Muster. Öffentlicher Morozovhttp://blog.kislenko.net/show.php?id=1775

)))

 
Igor Makanu:

Ich habe Ratschläge gegeben, wie man auf private Methoden/Felder in SB zugreifen kann, und habe diesen Haken selbst im Forum aufgeschnappt, ich weiß nicht mehr, wer ihn vorgeschlagen hat.

Ich war überrascht, als ich feststellte, dass ich wie üblich Ratschläge erteilte, ohne mich an die Terminologie zu halten. Es war kein Haken, sondern ein Anti-Muster. Öffentlicher Morozovhttp://blog.kislenko.net/show.php?id=1775

)))

da haben Sie den Musterverweigerern und OO-Liebhabern ein Fass Honig um den Bart geschmiert :-) Ein Muster, um das zu erhalten, was durch Designüberlegungen verborgen ist :-)

Jemand (jemand von den aktuellen OO/C++-Monstern) hat ganz vernünftig gesagt, dass der Knackpunkt von OO darin besteht, dass die Basisklasse ausreichende Schnittstellen für alle nachgeordneten Varianten bereitstellen muss (praktisch Setter-Getter für alle Felder oder alles in einem),
und die Nachkommen keine virtuellen Funktionen außerhalb des übergeordneten Protokolls erstellen können, nur dann wird das universelle Glück kommen. Dann spart generalisierte STL+boost wirklich, Tests sind nützlich und wiederverwendbar. Aber es wird eine Menge von Klassen, weil anstelle von neuen virtuellen Funktionen alle Arten von Proxies handeln.

 
Maxim Kuznetsov:

Sie haben hier ein Fass Honig für Musterverweigerer und OO-Liebhaber aufgemacht :-) Ein Muster, um das zu erhalten, was durch Designüberlegungen verborgen ist :-)

Jemand (jemand von den aktuellen OO/C++-Monstern) hat ganz vernünftig gesagt, dass der Knackpunkt von OO darin besteht, dass die Basisklasse ausreichende Schnittstellen für alle nachgeordneten Varianten bereitstellen muss (praktisch Setter-Getter für alle Felder oder alles in einem),
und die Nachkommen keine virtuellen Funktionen außerhalb des übergeordneten Protokolls erstellen können, nur dann wird das universelle Glück kommen. Dann spart generalisierte STL+boost wirklich, Tests sind nützlich und wiederverwendbar. Aber es wird eine Menge von Klassen, weil alle Arten von Proxies anstelle von neuen virtuellen Funktionen handeln.

Was haben Muster und OO-Liebhaber damit zu tun?

 
Maxim Kuznetsov:

Jemand (jemand von den aktuellen OO/C++-Monstern) hat ganz vernünftig gesagt, dass der Knackpunkt von OO darin besteht, dass die Basisklasse ausreichende Schnittstellen für alle Variationen von Nachkommen zur Verfügung stellen muss (praktisch Setter-Getter für alle Felder, oder all-in-a-blank)

Ich weiß nicht, welches "Monster" so einen Unsinn gesagt hat. Er scheint ein Befürworter davon zu sein, alles, was man in eine Klasse packen kann und was nicht, in eine Klasse zu packen: "...der Schnitter und der Heiler".
 
Apropos "Anti-Patterns": Fast die gesamte Standard-MQ-Bibliothek ist ein einziges Anti-Pattern).