Hatalar, hatalar, sorular - sayfa 1354

 

Beyler, geliştiriciler, dilin uygunluğunu ona özellik ekleyerek nasıl önemli ölçüde artıracağınıza nasıl bakıyorsunuz: https://msdn.microsoft.com/en-us/library/x9fsa0sw.aspx

Ve sonra ayarlayıcılar, alıcılar ve parantezlerle sürekli danslar çok can sıkıcı.

 
Alexey Navoykov :

Beyler, geliştiriciler, dilin uygunluğunu ona özellik ekleyerek nasıl önemli ölçüde artıracağınıza nasıl bakıyorsunuz: https://msdn.microsoft.com/en-us/library/x9fsa0sw.aspx

Ve sonra ayarlayıcılar, alıcılar ve parantezlerle sürekli danslar çok can sıkıcı.

Alexey, buna varım ama buraya gelmen gerekli değil, oy vermen gerekiyor. Burada bazı koltuk değnekleri var, MQL'de denemedim http://rsdn.ru/article/vcpp/props.xml
Свойства в С++
  • rsdn.org
В этой статье автор рассматривает различные способы реализации свойств в стиле Visual Basic на C++. Некоторые способы специфичны для Visual C++, тогда как другие годятся для применения в любой программе, написанной на языке C++.
 
Alexey Volchanskiy :
Alexey, buna varım ama buraya gelmen gerekli değil, oy vermen gerekiyor. Burada bazı koltuk değnekleri var, MQL'de denemedim http://rsdn.ru/article/vcpp/props.xml

Bağlantınızdaki kodlamada bir sorun var. Ben sağlam krakozyabry verir. Ama ne hakkında olduğunu anladım, bir keresinde bu koltuk değneklerini okudum. Şu anda MQL'de uygulanmamaktadır, çünkü yayın operatörü aşırı yüklemesi desteklenmez. Ve buna değmez, çok koltuk değneği. Ancak VS'deki normal özellik, özellikle bir makroya sarılmışsa çok uygundur. Ve herhangi bir ek kaynak tüketmez. Bu nedenle, özellikleri MQL'ye de dahil etmenin tam zamanı. Ve bir şekilde onlarsız her şey sakar görünüyor.

 
Alexey Volchanskiy :

Anladım, MQL4 derleyicisinde bir hata buldum. İşte böyle bir hata, dikkatsizlikten, 2 gün aramadan öldü... Sonuç şu, en basit kodu vereceğim. Derleme veya uyarı hatası oluşmaz, çalışma zamanı hatası oluşur.

     double ptest = double (test); // тут должна быть ошибка компиляции!!!  

Burada hataya gerek yok. Burada açık bir typecast var . VS'de böyle olurdu

   double ptest = (double)(int) (test);
temelde neyi değiştirirdi?
 
A100 :
Burada hataya gerek yok. Açık bir tür dönüşümü var
Açıkça bile olsa bir sınıfı anlamlı bir türe çeviremezsiniz. Kesinlikle bir hata.
 
Lütfen bana Piyasa İzleme penceresindeki (MT4, MT5) sembolleri nasıl sıralayacağımı hatırlat. Bir terminalde güzel bir şekilde sıralandım, diğerinde - tam bir karmaşa. Uzun süre sıraladım - nasıl yaptığımı hatırlamıyorum. Bununla ilgili belgelerde - karakterleri birer birer yeni bir yere sürüklemekten başka bir şey yok. Ama kesinlikle yapmadım - tüm listeyi manuel olarak sıralayarak kendinizi öldürebilirsiniz. :-/
 
Vasiliy Sokolov :
Açıkça bile olsa bir sınıfı anlamlı bir türe çeviremezsiniz. Kesinlikle bir hata.

Bir sınıf değil, bir işaretçi vardır ve bir işaretçi bir sayıdır.

 class A{};
void f()
{
        A *a;
         int i = int (a);
}

C++ hatasız derler

Doğrudan açık dönüştürmeyi ikiye katlamayı yasaklarsanız, bir dahaki sefere aynı sonuçla double yerine int olur ve yine derleyici suçlanır. Hatalarınızı derleyici hatalarından ayırt etmeniz gerekir.

 
A100 :

Bir sınıf değil, bir işaretçi ve bir işaretçi bir sayıdır - materyali öğrenin.

C++ hatasız derler

Doğrudan açık dönüştürmeyi ikiye katlamayı yasaklarsanız, bir dahaki sefere aynı sonuçla double yerine int olur ve yine derleyici suçlanır. Hatalarınızı derleyici hatalarından ayırt etmeniz gerekir.

Orada işaretçi yok çünkü MQL4/5'te işaretçi yok. Tanımlayıcılar var.

----------------------

Servis masasından yanıt geldi

Destek Ekibi 2015.08.24 09:44
Gönderdiğiniz için teşekkürler, düzelteceğiz.
Gerçekten de burada bir derleme hatası olmalı.


Destek Ekibi 2015.08.24 14:39

Durum: Açık Kapalı
Gönderdiğiniz için teşekkürler, düzeltildi. Şimdi derleyici bir derleme hatası verecektir.
 
Alexey Volchanskiy :

Orada işaretçi yok çünkü MQL4/5'te işaretçi yok. Tanımlayıcılar var.

Bir tanımlayıcı hala belirli bir sayıdır. Bu sayının hafızanın belirli bir alanını işaret etmemesi onu bir sayının özelliklerinden mahrum bırakmaz.
 
A100 :
Tanımlayıcı hala belirli bir sayıdır
Elbette "hafızada nasıl saklandığı" açısından haklısınız.
Ancak tanımlayıcıyı bir sayıya veya tam tersine atamanın bir anlamı yoktur ve büyük olasılıkla bu kodda bir hatadır.
Yakın gelecekte, ilgili dönüştürme operatörü sınıfta aşırı yüklenirse çağrılacaktır.