Hatalar, hatalar, sorular - sayfa 1980

 
Stanislav Korotky :

Kaba olma. Anormal bir şekilde konuşmaya başlayan ilk kişi sendin.

With ++ ile derleme hakkında soranlar? Bana ortak bir iş sorusu gibi görünüyor.
 
Andrey Barinov :
Referans için: Her iki örneğiniz de açıkça C++'a çevrilmişse, C++ her iki durumda da bir hata verecektir. 1. durumda MQL, derleme işlemi (dilin kendisi değil) farklı olduğu için hata vermez
 
A100 :
With ++ ile derleme hakkında soranlar?

Bu iki pasajla:

Bu örneği C++ ile derlemeyi denediniz mi - yoksa genel teorik akıl yürütme mi?

sağladığım çalışan C++ örneğine yanıt olarak ve ayrıca

Denemediyseniz yazmanız yeterli.

az önce denediğim gerçeğine cevaben.

 
Stanislav Korotky :

Bu iki pasajla:

sağladığım çalışan C++ örneğine yanıt olarak ve ayrıca

az önce denediğim gerçeğine yanıt olarak.

ServiceDesk'e yazarken, örnek olarak bir üçüncü taraf sitesindeki kodu da veriyor musunuz? Ve değilse, neden olmasın?
 
A100 :
Referans için: Her iki örneğiniz de açıkça C++'a çevrilmişse, C++ her iki durumda da bir hata verecektir. 1. durumda MQL, derleme işlemi (dilin kendisi değil) farklı olduğu için hata vermez

Teşekkür ederim.

 
Andrey Barinov :

Teşekkür ederim.

Asılsız olmamak için ikincisine bir analog veriyorum (kendi yolumda biraz düzelttim):

 #ifdef __cplusplus
class B;
class A {
         int f( B* b ) { return b->i; } //Error: E2315
         int i;
};
class B : public A {};
#endif

ve orijinal gönderiye geri dön

 #ifdef __cplusplus
class B;
class A {
         void f() {}
         void g() { b->f(); } //Error: E2315
        B *b;
};
class B : public A {};
#endif
 

Kontrol ettim, Stanislav'ın sürümü VS 2010'da başarıyla derleniyor. Ayrıca, sadece bir yöntem değil, özel bir alana erişmek de işe yarıyor. Bu nedenle, belki de A100 bu sefer sonuçlarında heyecanlandı)

 
Alexey Navoykov :

Kontrol ettim, Stanislav'ın sürümü VS 2010'da başarıyla derleniyor. Ayrıca, sadece bir yöntem değil, özel bir alana erişmek de işe yarıyor. Bu nedenle, belki de A100 bu sefer sonuçlarında heyecanlandı)

https://www.mql5.com/ru/forum/1111/page1999#comment_5677254 ile tam olarak eşleşiyor mu?

Yukarıda seçeneklerim var ... kodu buraya gönderin - çünkü kendisi gönderemez

Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2017.08.29
  • www.mql5.com
Форум алго-трейдеров MQL5
 
A100 :

https://www.mql5.com/ru/forum/1111/page1999#comment_5677254 ile tam olarak eşleşiyor mu?

Yukarıda seçeneklerim var ... kodu buraya gönderin - çünkü kendisi gönderemez

Hangi derleyici ile derlediniz? VS 2010'umda kodunuz tamamen farklı bir nedenden dolayı derlenmiyor: B sınıfı, bu sınıfın yönteminin çağrıldığı yerde tanımlanmadı. Bunu yapmak için g() tanımını sınıfın dışına taşımanız gerekir. Ve Stanislav tam da bunu yaptı. Onlar. kodunuz şöyle olmalı:

 class B;
class A {
   void f() {}
   void g();
  B *b;
};
class B : public A {};


void A::g( void )
{
  b->f();
}

ve derler.

 
Alexey Navoykov :

Hangi derleyici ile derlediniz?

Aslında bu hiçbir şeyi değiştirmiyor - bir derleme hatası (bir tabletim var - Borland derleyicisi)

 #ifdef __cplusplus
class B;
class A {
         void f() {}
         void g();
        B *b;
};
class B : public A {};
void A::g() { b->f(); } //Error: E2247
#endif