Gespräche über die PLO in der Lounge - Seite 8

 
Maxim Dmitrievsky:

Wahrscheinlich, weil ich diesen Code kaum verstehe :)

Tut mir leid, ich bin ein Amateurprogrammierer... Ich kenne mich mit OOP nur in den Grundzügen aus.

Nun, du bist nicht der Einzige, der es nicht versteht, du bist nicht der Einzige... Dieser Stil - in ein Makro zu packen, was nicht in ein Makro gepackt werden kann - hat seine Vor- und Nachteile. Soweit ich das mitbekommen habe, hat mein Kollegefxsaber nur Vorteile (Flexibilität, plattformübergreifend, usw.). Und die Tatsache, dass man solchen Code nicht im Debugger überprüfen kann, was ist das? Nun, die Lesbarkeit eines solchen Stils ist eher fraglich. Aber, wie man so schön sagt, der Meister ist der Meister...

 
Комбинатор:
In C++ sind Klasse und Struktur gleich, nur einige Standardwerte sind anders.

jep, wie nehmen Sie einen Zeiger auf eine Struktur?

 
Vasiliy Sokolov:

Man muss also von den richtigen Beispielen lernen. Und es gibt keine in SB. Nehmen Sie zum Beispiel CObject - es bietet keine Typkontrolle, es bietet keine Arbeit mit Objekten auf Schnittstellenebene, aber es enthält bedeutungslose Methoden wie Save() und Load(), die in der Praxis nie überschrieben werden. Die Zeiger m_prev und m_next werden in einer einzigen CList-Klasse verwendet, sind aber als Ballast für alle ihre Nachfolgeklassen vorhanden. Am nützlichsten ist die Methode Comparer(). In den meisten Fällen wird sie jedoch außer Kraft gesetzt. Aber normalerweise ist Comparer() eine Schnittstelle, es wäre besser, sie nicht in einem CObject, sondern als eigene Klasse zu definieren.

Bitte erklären Sie mir das mit der Kontrolle, ich verstehe das nicht. Welche Art von Objekten? Im Allgemeinen sollte dies eine Dummy-Klasse ohne Felder und Methoden sein. Ihr einziger Zweck ist es, einen gemeinsamen Vorläufer für andere Klassen zu bilden. Es ist ein großer Fehler, dass die Entwickler es mit Müll vollgestopft haben.

Dort sollte es keinen Vergleich geben. Es sollte eine Dummy-Klasse sein.

 
Alexey Volchanskiy:

Erklären Sie das mit der Kontrolle, ich verstehe das nicht. Mit welchen Gegenständen? Es sollte eine Dummy-Klasse ohne Felder und Methoden sein. Ihr einziger Zweck ist es, einen gemeinsamen Vorfahren für andere Klassen zu bilden. Es ist ein großer Fehler, dass die Entwickler es mit Müll vollgestopft haben.

Dort sollte es keinen Vergleich geben. Es sollte eine Dummy-Klasse sein.

Das ist kein SmallTalk, die ganze Praxis (und auch die Theorie) hat gezeigt, dass die Ausgabe eines Objektbaums aus Adam ein gemeines Übel ist. Und ST darf das, er ist in seinem eigenen Saft (seiner eigenen virtuellen Maschine).

Nach der Hitze zu urteilen, ist bis zum 8. März mit einem Versuch-Fang-Wurf zu rechnen ? :-) Es wird natürlich ein Frauenfest sein, aber es wird eine Sünde sein, nicht zu trinken.

 
Maxim Kuznetsov:

Das ist kein SmallTalk, alle Praxis (und auch die Theorie) hat gezeigt, dass es ein grausames Übel ist, den Objektbaum von Adam abzuleiten. Und ST darf das, er ist in seinem eigenen Saft (seiner virtuellen Maschine).

Ich denke, wir können bis zum 8. März mit einem Versuch-Fang-Wurf rechnen. :-) Natürlich wird es ein Frauentag sein, aber es wäre eine Sünde, nicht zu trinken.


Nein, es wird keinen Urlaub geben, sagte Renat - keine Ausnahmen. Siehehttps://www.mql5.com/ru/forum/168361 , jemand hat es angesprochen. Ich habe mich gefragt, ob es Pläne für die Exeptses gibt oder was? Die Antwort war leider nein.

Aber im Compiler haben wir ein wichtiges Kontrollkästchen - check divisors ))))). Warten auf das Kontrollkästchen "Array-Grenzen prüfen..." bis zum 8. März. Und dann werden wir weitere 25 Seiten mit ähnlichen Kontrollkästchen sehen. Wir wissen nicht, wie man einen Auszug macht, oder?

SZY: Ich habe mir die Basisklasse Object in C# angesehen, ebenfalls minimal. Bild von msdn


Почему в MQL5 нет исключений?
Почему в MQL5 нет исключений?
  • 2017.01.29
  • www.mql5.com
Не нужны, надо все условия руками проверять, по старинке оно надежнее Нужны, почему нет - не знаю А что это такое? Хочу посмотреть...
 
Dennis Kirichenko:

Nun, du bist nicht der Einzige, der das nicht versteht, du bist nicht der Einzige... Dieser Stil - das, was man nicht in Makros packen kann, in die Makros zu packen - hat seine Vor- und Nachteile. Soweit ich das mitbekommen habe,zeigtmein Kollegefxsaber nur Vorteile auf (Flexibilität, plattformübergreifend usw.). Und die Tatsache, dass man solchen Code nicht im Debugger überprüfen kann, was ist das? Nun, die Lesbarkeit eines solchen Stils ist eher fraglich. Aber wie man so schön sagt: Der Meister ist der Chef.

Warum sollte man einem konkreten Beispiel etwas zuschreiben, was es nicht enthält?

Maxim Dmitrievsky:

Welche Modelle können verwendet werden, um das Programmieren auf genau dieselbe Weise zu lernen? :) sieht sehr schön aus.

Ich bin Autodidakt, deshalb verfolge ich das nicht weiter. Ich habe einen Tupolev-Ansatz: "Nur schöne Flugzeuge fliegen gut!"

 
Maxim Kuznetsov:

Das ist kein SmallTalk, alle Praxis (und auch die Theorie) hat gezeigt, dass es ein grausames Übel ist, den Objektbaum von Adam abzuleiten. Und ST darf das, er ist in seinem eigenen Saft (seiner eigenen virtuellen Maschine).

Nach der Hitze zu urteilen, erwarten wir bis zum 8. März einen Try-Catch-Throw? :-) Natürlich wird es ein Feiertag für Frauen sein, aber es ist eine Sünde, nicht zu trinken.


Der Sinn einer leeren Basisklasse ist, dass wir so etwas schreiben können. Ich sage Ihnen gleich, dass das Beispiel keinen Nutzen hat, ich habe es spontan erfunden. Der Punkt ist, dass wir jede abgeleitete Klasse in ein CObject* umwandeln können.

CObject* objarr[12];

void OnStart()
{
    objarr[0] = new CAccountInfo;
    // еще что-то подобное, кладем в массив указатели на объекты абсолютно разных классов, но с одним предков
    objarr[11] = new CDealInfo;
    // обращаемся и работаем
    CAccountInfo * ai = (CAccountInfo*)objarr[0];
    //
    
    for(int n = 0; n < 12; n++)
        if(CheckPointer(objarr[n]) == POINTER_DYNAMIC)
            delete objarr[n];
       
}

*

 
Alexey Volchanskiy:

jep, wie nehmen Sie einen Zeiger auf eine Struktur?

Ich verstehe die Frage ehrlich gesagt nicht, aber es ist auf jeden Fall dasselbe wie bei der Klasse
 
Комбинатор:
Ich verstehe die Frage ehrlich gesagt nicht, aber es ist auf jeden Fall dasselbe wie bei der Klasse

Es tut mir sehr leid, in welchem Zusammenhang mit welcher Sprache ziehen Sie diese Schlussfolgerung? :-)



 
Комбинатор:
Ich verstehe die Frage ehrlich gesagt nicht, aber so oder so ist es das Gleiche wie für die Klasse

class C {};
struct S {};

void OnStart()
{
    C *_c = new C; // так можно
    S *_s = new S; // указатели на структуру не допускаются 
}

Grund der Beschwerde: