Hatalar, hatalar, sorular - sayfa 2565

 
Igor Makanu :

tartışmayacağım

Bu arada tartıştığımız sorunu açıklamaya karar verdim, bu arada, MQL'nin davranışı giderek C# davranışına benzer hale geldi, kod derlenmedi

 //+------------------------------------------------------------------+
class A
{
private :
   int                count;
public :
                     A():count( 0 ) {}
   static void        inc()        { count++; }

};

A a;
//+------------------------------------------------------------------+
void OnStart ()
{
   a.inc(); //code generation error 
   A::inc();
   
}
//_______________________________________________________________________

işte inc() yöntemi - korumalı bir alanla çalışır

statik bir değiştirici eklediysem - derleyici kontrolü nerede bırakmalı? - Görünürlük dışındaki bir nesneye giriş noktasına ihtiyacım olduğuna karar verdim?

 
Igor Makanu :

statik bir yöntem/alan yazdıysanız veya uyguladıysanız :: - derleyiciye güvenmeyin

Hatalar olur. Kodu önceki gibi yazıyorum: this, ::, const, static, private, public, protected mümkün olan her yere yerleştirilir.

Kodumu hızlı bir şekilde anlamak için her şeyden önce buna ihtiyacım var. İkincisi - derleyici yazma sırasında yardımcı oldu. Ve o gerçekten yardımsever.


Dün bu durumla ilk defa karşılaştım. Bir kısmı çeşitli çalışmalardan kopyala-yapıştır olan 5Kb'lık bir kod yazdım. Ve ilk derlemede tek bir hata veya uyarı yoktu. Şaşırmış.

 
Igor Makanu :

tartıştığımız sorunu tanımlamak için aynı şekilde karar verdi

 //+------------------------------------------------------------------+
class A
{
private :
   int                count;
public :
                     A():count( 0 ) {}
   static void        inc()        { count++; } // Здесь ошибка, о которой компилятор сейчас не сообщает.

};
 
Igor Makanu :

Bu arada tartıştığımız sorunu açıklamaya karar verdim, bu arada, MQL'nin davranışı giderek C# davranışına benzer hale geldi, kod derlenmedi

işte inc() yöntemi - korumalı bir alanla çalışır

statik bir değiştirici eklediysem - derleyici kontrolü nerede bırakmalı? - Görünürlük dışındaki bir nesneye giriş noktasına ihtiyacım olduğuna karar verdim?

Sayma değişkeniniz statik değil.

Statik bir işlev, bu değişkenin hangi nesneye ait olduğunu nasıl bilir?

 
Koldun Zloy :

Sayma değişkeniniz statik değil.

Statik bir işlev, bu değişkenin hangi nesneye ait olduğunu nasıl bilir?

önemli değil, genel olarak statik yöntemlerle çalışmanın herhangi bir uygulamasının derleyiciden tam bir kontrole sahip olmayacağı gerçeğinden bahsediyorum ve kontrol sorumluluğu programcıya aittir.

tamam gidelim çünkü umurumda değil - günde 2 defa aynı şeyi yazdım https://www.mql5.com/en/forum/1111/page2564#comment_13249284

 
Igor Makanu :

Genel olarak, statik yöntemlerle çalışmanın herhangi bir uygulamasının derleyiciden tam bir kontrole sahip olmayacağı gerçeğinden bahsediyorum ve kontrol için tüm sorumluluk programcıya aittir.

bunu nerede okudun?

Kendin mi buldun ve durmadan tekrarladın mı?

 
Andrey Barinov :

bunu nerede okudun?

Kendin mi buldun ve durmadan tekrarladın mı?

Bunu ben bulmadım, bu benim düşüncem ... ve prensip olarak, tüm çalışmaları statik ile C#'ta olduğu gibi sadece statik içinde kapatın - o zaman kesinlikle soru veya hata olmayacak;)

 
Slava :

Platformla ilgili birkaç soru:

1. MOEX aracılığıyla VP için izin verilen bir ticaret aralığı eklenecek mi (örn. EURRUB_TOM)? Artık limitin belirlenip belirlenmeyeceğini kesin olarak bilmek mümkün değil çünkü. aralığa erişim yok (maksimum ve minimum olası fiyatlar). Lütfen Ekle.

2. Terminale ve meta düzenleyiciye her N dakikada bir otomatik kaydetme durumu eklemek mümkün müdür? Çok eksik, tk. ani bir bağlantı kesilmesi durumunda, tüm değişikliklerin kaybıyla programın başlatıldığı andaki durumuna geri dönersiniz! Çok sinir bozucu!

 

Beyler, MQ, depolama konusunda iyi misiniz? 10-20 saniye bir dosya taahhüt edin. Eskiden her şey...

Eklendi: bazen taahhüt sadece kilitleniyor ...

 
Özel bir enstrümana sahip bir grafikteki bir göstergede CopyBuffer işlevinin çağrılması (örneğin, EURUSD için gerçek semboller için normal bir mash tutamacı ile) 4806 hatası verir. Özel sembol XAUUSD/31.1035* formülüne göre oluşturulmuştur. USDRUB. Aynı ayarlara sahip aynı özel gösterge, canlı bir grafikte (örn. XAUUSD, GBPUSD, vb.) iyi çalışır. Sorun ne olabilir?