Hatalar, hatalar, sorular - sayfa 2808

 
Çalışma hatası
 class A {};
class B : public A {
public :
template < typename T>
                 void f( T )  { printf ( "%d" , 1 ); }
};
class C : public B {
public :
                 void f( A* ) { printf ( "%d" , 2 ); }
};
void OnStart ()
{
        C *c;
        B *b;
        c.f( b );
}

MQL'de Sonuç: 1

C++'da: 2

Hatırladığım kadarıyla, MQL'nin orijinal konsepti uzun zaman önce değişti ve şimdi, tıpkı C++'da olduğu gibi, temel sınıfa yalnızca türetilmiş sınıfta uygun bir işlev yoksa erişiliyor. Yoksa hepsini tekrar mı oynadılar?

 
A100 :

MQL'de sorun yok:

C++ her iki durumda da hata veriyor

Ve ikinci durumda yanlış olan ne olabilir? İşaretçinin bildirildiği ancak kullanılmadığı konusunda maksimum bir uyarı (ipucu) vardır.

 
Lütfen tüm yeni sürümlerde gözlemlenen hatayı çözün

2020.07.26 10:54:28.285 PKFDC0:30019 genetik geçiş (94, 1154) 0:00:00.110'da "OnInit sıfır olmayan kod 1 döndürdü" hatasıyla test edildi

2020.07.26 10:54:28.289 test cihazı uzman dosyası ....\ MQL5\StochasticCCI.ex5 açma hatası [2]

ve orada değil ve olmamalı

hata güncellemeden sonra ağ aracısı tarafından verildi, güncellemeden önce iyi çalıştı, eski sürümlerde optimize edici EA'da hata vermiyor, EA yeniden derlenmedi

tüm verilerin kaldırılmasıyla metatrader'ın tamamen yıkılması ve yeniden kurulması herhangi bir etki yaratmadı



 
Boris Egorov :
Lütfen tüm yeni sürümlerde gözlemlenen hatayı çözün

2020.07.26 10:54:28.285 PKFDC0:30019 genetik geçiş (94, 1154) 0:00:00.110'da "OnInit sıfır olmayan kod 1 döndürdü" hatasıyla test edildi

2020.07.26 10:54:28.289 test cihazı uzman dosyası ....\ MQL5\StochasticCCI.ex5 açma hatası [2]

ve orada değil ve olmamalı

hata güncellemeden sonra ağ aracısı tarafından verildi, güncellemeden önce iyi çalıştı, eski sürümlerde optimize edici EA'da hata vermiyor, EA yeniden derlenmedi

tüm verilerin kaldırılmasıyla metatrader'ın tamamen yıkılması ve yeniden kurulması herhangi bir etki yaratmadı



Gösterge aramanızın kodunu gösterin lütfen.
 
Mihail Matkovskij :

Ve ikinci durumda yanlış olan ne olabilir? İşaretçinin bildirildiği ancak kullanılmadığı konusunda maksimum bir uyarı (ipucu) vardır.

Çünkü değil

 class B : public A {};
farklı lehçeler olabilir, her durumda Geliştiriciler tarafından doğrulama zarar vermez
 
MetaQuotes :
Gösterge aramanızın kodunu gösterin lütfen.

Gönderiye dikkat edin, danışmanlar insanlar için çalışmayı bıraktı !!!!!!! https://www.mql5.com/en/forum/347385/page5#comment_17519416

Новая версия платформы MetaTrader 5 build 2560: Улучшения во встроенной системе обучения
Новая версия платформы MetaTrader 5 build 2560: Улучшения во встроенной системе обучения
  • 2020.07.26
  • www.mql5.com
В пятницу 24 июля 2020 года будет выпущена обновленная версия платформы MetaTrader 5...
 

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Hatalar, hatalar, sorular

A100 , 2020.07.26 01:02

MQL'de sorun yok:

 class A {};
class B : A {};
class C : B {
                 void f1( A* ) {}     //(1)нормально
                 void f2() { A *a; } //(2)нормально
};

C++ her iki durumda da hata veriyor


Lütfen bu kodun neden bir sorunu olduğunu açıklayın?

 
fxsaber :

Lütfen bu kodun neden bir sorunu olduğunu açıklayın?

Hiçbir fikrim yok! Bu örnek ayrıştırılıyor... yapı sınıfa değiştirildi - C++ kabuğu bir hata verdi:

hata: 'class AA::A' erişilemez

kendin kontrol edebilirsin

 

bağlam çözünürlüğünde. ata aracılığıyla, yapıcı özel miras nedeniyle kullanılamaz.

bağlamı açıkça belirtirseniz, her şey derlenir

                 void f1( ::A* ) {}     //(1)нормально
                 void f2() { ::A *a; } //(2)нормально

_____

yapıcı neden gerekli, sormayın - hiçbir fikrim yok.

 
@A100 , @TheXpert , Teşekkürler.