OOP, mql5'te şablonlar ve makrolar, incelikler ve kullanım teknikleri - sayfa 25

 

fxsaber :

Muhtemelen, bu gibi durumlarda, bazı derleyiciler uyarı verir.

belirteç, bir bütün olarak nesneye değil, referansa atıfta bulunur, her şey yasaldır, derleyici neden yemin etsin?

 
TheXpert :

belirteç, bir bütün olarak nesneye değil, referansa atıfta bulunur, her şey yasaldır, derleyici neden yemin etsin?

Muhtemelen, öyle olsaydı, burada suistimal olmazdı.

 void g1( A& ) {}
void g2( const A& ) {}

void OnStart ()
{
   const A a;
  
  g1(a); // 'a' - constant variable cannot be passed as reference
  g2(a); // OK
}
 
fxsaber :

Muhtemelen, öyle olsaydı, burada suistimal olmazdı.

ve burada sadece nesne sabittir, sabit bir nesne için sabit olmayan bir referans olamayacağı mantıklıdır.

 
TheXpert :

ve burada sadece nesne sabittir, sabit bir nesne için sabit olmayan bir referans olamayacağı mantıklıdır.

Sabit bir nesneye nasıl başvuru yapılır?

 
fxsaber :

Sabit bir nesneye nasıl başvuru yapılır?

 void g1( A& ) {}
void g1( const A& ){}
void g2( const A& ) {}

void OnStart ()
{
   const A a;
  
  g1(a);
  g2(a);
}

Aşırı yük ekleyin.

 
Vladimir Simakov :

Aşırı yük ekleyin.

Böyle bir aşırı yükleme, sabit bir referansta aşırı yük değil mi?

 
fxsaber :

Böyle bir aşırı yükleme, sabit bir referansta aşırı yük değil mi?

Ve ne yapmak istiyorsun?

 
fxsaber :

Böyle bir aşırı yükleme, sabit bir referansta aşırı yük değil mi?

Derleyicinin ilk örneğinize küfretmesini istiyorsanız, o zaman işe yaramaz, çünkü orada her şey yasaldır: nesne örneğini referansa göre değiştirmezsiniz, yöntemin çağrıldığı nesne örneğini değiştirirsiniz, ancak tek ve aynı nesne olabileceği gerçeği, bu nedenle bu bir derleyici sorunu değil, bir programcının baş ağrısıdır.

Bir sınıf için aşağıdaki numarayı yapabilirsiniz (bir yapı için çalışmaz):

 class A
{
   int i;
public :
   void f( const A &Value )  
  {
     Print (Value.i); // 0
    
     if (& this !=&Value) this .i = Value.i + 1 ;
    
     Print (Value.i); // 1
  }
};

void OnStart ()
{
  A a;
  
  a.f(a);
}
 
Vladimir Simakov :

Derleyicinin ilk örneğinize küfretmesini istiyorsanız, o zaman çalışmayacaktır, çünkü orada her şey yasaldır.

Bu yasallıkla ilgili değil, const değiştiricisinin bir nesnenin değişmezliğini garanti etmediği gerçeğiyle ilgilidir.

 

ORDER_TIME_SETUP_MSC değeriyle eşleşme hala mümkünse, beklemede olması anlamsızdır.


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

Kitaplıklar: MT4Orders

fxsaber , 2020.02.27 09:40

 0 - 348806 : 00 : 01 : 57.311
1 - 348530 : 00 : 01 : 39.027
2 - 348494 : 00 : 01 : 15.259
3 - 348406 : 00 : 01 : 07.671
4 - 348950 : 00 : 01 : 04.869
5 - 348960 : 00 : 01 : 02.888
6 - 348814 : 00 : 01 : 00.654
7 - 348392 : 00 : 01 : 00.642
8 - 348508 : 00 : 00 : 54.515
9 - 348550 : 00 : 00 : 54.467


Çalışan bir hesapta iki dakikaya kadar yürütme. Yazınızı burada paylaşın. Betik herhangi bir kitaplık kullanmaz, Netleştirme/Çit için uygundur.