Hatalar, hatalar, sorular - sayfa 2420

 

Neden mql5 anlambilimi hareket ettirir? Özellikle bu bir sanal makine olduğu için böyle bir performans optimizasyonuna gerek yoktur. Başka hangi amaçla kullanılacak?

mql5'in kendisi hem C++ hem de C ++98'den çok farklıdır ve hatta C++11/14/17'den daha da farklıdır, ancak yetenekleri artık bir Expert Advisor oluşturmak için gerekli şeyleri tamamen kapsıyor.

 
Andrey Pogoreltsev :

ancak yetenekleri şimdi bir danışman oluşturmak için gerekli şeyleri tamamen kapsıyor.

6 yıl önceki eski MQL4'te de bu ihtiyaçları karşılamışlar, o zaman dilin ne seviyede olduğu hakkında bir fikriniz varsa. Bunun üzerine danışmanlar yazdık ve bazıları hala çok arkaik bir tarzda kodlama yapıyor. Yani her şey görecelidir.

Başka hangi amaçla kullanılacak?

Konunun son birkaç sayfasında bu konu tartışıldı.
 

Burada bir hata veriyor:

 void OnStart ()
  {
   struct sA
     {
       int                ii[ 51 ];
     };
   struct sB
     {
       string             name;
      sA                distrib;
     };
   sB f;
  }
'distrib' - struct undefined    Test2.mq5       21      25

Ama çıktı vermiyor:

 void OnStart ()
  {
   struct sA
     {
       int                ii[ 51 ];
     };
   struct sB
     {
       //string            name;
      sA                distrib;
     };
   sB f;
  }

O da çıktı vermiyor:

 struct sA
  {
   int                ii[ 51 ];
  };
struct sB
  {
   string             name;
   sA                distrib;
  };

void OnStart ()
  {
   sB f;
  }

Ekli dosyada, hatayı yeniden oluşturmak için kullanılan komut dosyası, yukarıda birkaç satır kod bulunan boş bir komut dosyasıdır.

Dosyalar:
Test2.mq5  1 kb
 

Bu hiç mantıklı değil.

 class A
  {
   class B
     {
       class C
        {
         class D
           {
             class E
              {
               bool               YES;
              };
           };
        };
     };
  };
void OnStart ()
  {
   E g;
  }

E Sınıfı böyle bir popülerliği hak etmiyor.

Hatasız derler.

 
Bu bir derleyici hatası mı?
 class A
{
private :
   int i;
};

class B : public A
{
public :  
   void f( int i ) {} // declaration of 'i' hides member declaration at line 4
};
 
fxsaber :
Bu bir derleyici hatası mı?
Belki de formun can sıkıcı gevezeliği, ciddi konulardan dikkati dağıtan çöpler hakkında?
 
fxsaber :
Bu bir derleyici hatası mı?
artılar için aynı
 
Vict :
Belki de formun can sıkıcı gevezeliği, ciddi konulardan dikkati dağıtan çöpler hakkında?

Bütün bunları onun coşkusuyla yaşarken, o zaman söyle bana?

 
fxsaber :
Bu bir derleyici hatası mı?

bu yüzden mantıklı görünüyor.

genel işlevlerde girdi parametreleri nasıl özel olabilir? Çıkar çatışması.

bu özel parametrenin bu işlev içinde kullanılması gerekiyorsa, girdi olarak bildirilmesi gerekmez, çünkü o var.

Bu, başka bir değişken anlamına geliyorsa, elbette, fonksiyon içinde mevcut bir özel değişkenle bir isim çakışması olacaktır ve bu nedenle, farklı bir adla çağrılmalıdır.


Tehdit Önemli değil - ben kamu veya özel. Bu banal bir isim çatışması. f fonksiyonunun içinde, i'nin bir giriş parametresi mi yoksa ana sınıfın global bir değişkeni mi olduğu belirsiz olacaktır.

 
Nikolai Semko :

soru, gizlilik nedeniyle üyeye erişemediğimizi ima ediyordu, ancak ad çakışması derleyici tarafından hala gösteriliyor.

zaten yazdığım gibi, artılar tamamen aynı şekilde davranır, yani. Derleyicide hata yok ve her şey yolunda.