MQL5'te OOP hakkında sorular - sayfa 77

 
Vladimir Simakov :

Zaten daha zor olduğunu kabul edin)))

Günlüğe değil bir dosyaya çıktı almak için bir örnek sormak istememe rağmen kibarca sessiz kaldım - günlüğüm daha pratik ve mantıklı, ancak terminal günlüğünde oradaki terminal çıktısının ne olduğunu, hangi EA olduğunu anlamak için çok uygunsuz

 

Henüz MQ'da olmayan karmaşık bağları ne zaman bükmeye başlayacağız?

 

standartlar konusunda uzmanlar, böyle bir soru:

ME'de {} seçimiyle ilgili bir karışıklık varken, MQL kodunu VS2019'da boş bir C ++ projesine kopyaladım, neden VS buna yemin ediyor :

 struct SHash
{
   ulong hash[ 2 ];
   bool operator ==( const SHash& value ) const { return ( this . hash[ 0 ] == value .hash[ 0 ] && this . hash[ 1 ] == value .hash[ 1 ]); }
};

şöyle yazar: "ifadenin bir sınıf türü olmalıdır"

 
Igor Makanu :

bir standart uzmanı, böyle bir soru:

ME'de {} seçimiyle ilgili bir karışıklık varken, MQL kodunu VS2019'da boş bir C ++ projesine kopyaladım, neden VS buna yemin ediyor :

şöyle yazar: "ifadenin bir sınıf türü olmalıdır"

ve C++'da bu bir işaretçidir.

veya * yeniden tanımlayın veya açıkça belirtin ->

 
Maxim Kuznetsov :

ve C++'da bu bir işaretçidir.

veya * yeniden tanımlayın veya açıkça belirtin ->

evet, bunu buraya yazdıkları tüm makalelerde olduğu gibi yapıştırmaya alıştım, genel olarak, hiçbir yere yazmayın, bu kadar basit yapılar içinde sadece seçenek yok ... gösteriş, IMHO

 
Igor Makanu :

standartlar konusunda uzmanlar, böyle bir soru:

ME'de {} seçimiyle ilgili bir karışıklık varken, MQL kodunu VS2019'da boş bir C ++ projesine kopyaladım, neden VS buna yemin ediyor :

şöyle yazar: "ifadenin bir sınıf türü olmalıdır"

Bu nasıl olmalı:

 struct SHash
{
         long hash[ 2 ];
         bool operator ==( const SHash& value ) const { return ( this ->hash[ 0 ] == value .hash[ 0 ] && this ->hash[ 1 ] == value .hash[ 1 ]); }
};
 
Andrei Novichkov :

Bu nasıl olmalı:

Yüklenen bir editör olarak VS, MQL'de ihtiyacım var, koda bakın, belki göreceğimi düşünüyorum)))

ama MQL için böyle bir yapıda - bunu yazmanın amacı ne? - bana hiç mantıklı gelmiyor

 
Igor Makanu :

MQL'de buna ihtiyacım var, VS'yi editör olarak yükledim, koda bakabilirim, görebileceğimi düşünüyorum)))

ama MQL için böyle bir yapıda - bunu yazmanın amacı ne? - bana hiç mantıklı gelmiyor

Kontrol etmek gerekir, ancak ilk bakışta, bunun sadece MQL'de değil, bu ifadede özel bir anlamı yoktur)
 
Igor Makanu :

Tekrar tekrar yazıyorum - Zamanım var (çünkü TV izlemiyorum))) - Dilin olanakları hakkında teknik bilgi topluyorum, OOP ... soru soran her şey hakkında - forum aktif, bunu kullanıyorum fırsat "yüzde yüz";)

O zaman soru, Sharp kodunuzu MQL'den çağırabiliyorsanız, C#'dan MQL'ye geçmenin amacının ne olduğuydu. Tabii ki amaç Pazara yerleştirme veya MQ bulutunda optimizasyon değilse.

C#'dan MQL'ye geçiş bence gerçekten acı verici) Nesnelerle çalışmanın rahatlığına ve kolaylığına alıştıktan sonra, onları silme konusunda endişelenmenize gerek yok, işte tam tersi. Öyle ya da böyle, tam teşekküllü OOP, referans nesnelerinin bir referans sayacına sahip olduğunu varsayar. Ve C++'da bu, bir sarmalayıcı (akıllı işaretçi) yardımıyla çözülür. MQL'de, -> operatörünün olmaması ve diğer problemler nedeniyle akıllı işaretçileri kullanmak çok sıkıcıdır.

Genel olarak, C ++ 'dan geçerken her şey az çok açıksa: bir sürü rahatsızlık ve kısıtlama alırsınız, ancak genel olarak yakın bir şey. Ve hatta bazı avantajlar (örneğin, yönetilen bir ortamın varlığı nedeniyle yürütme sırasında artan güvenilirlik). Ancak keskinden geçiş yaparken tek bir artı görmüyorum. sadece eksileri)

 
Igor Makanu :

evet, bunu buraya yazdıkları tüm makalelerde olduğu gibi yapıştırmaya alıştım, genel olarak, hiçbir yere yazmayın, bu kadar basit yapılar içinde sadece seçenek yok ... gösteriş, IMHO

Burada, genel olarak, birçok tartışmalı stil implante ediliyor))) Aynı

 return (retValue);

Neden parantez? Bu, JS değildir, ancak orada da gerekli değildir.

Ve buna gerçekten ihtiyacınız varsa ve profesyonellerde bunun doğru olacağını düşünüyorsanız, o zaman bunun yerine bir makro ikamesi

 #ifdef __cplusplus
   #define THIS * this
#else
   #define THIS this
#endif
Neden: