MQL5 Derleyici, bir sınıf ile ona yönelik bir işaretçi arasında ayrım yapmaz - sayfa 10

 
Ilya Malev :

Ve bu operasyonlar fiilen uygulanmadan önce ne kadar zaman geçti ... Muhtemelen bir rüzgar biliyor. Ve evet, forumda yıllarca çok başarılı olmadan oldukça önemli şeyler gündeme getirilebilir.

Çok tembel değilseniz ve biraz ileri giderseniz, her şeyi görebilirsiniz:

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

Hatalar, hatalar, sorular

İlyas , 2015.09.03 14:30


Operatörler *(Dereference/Inderection) ve &(Address-of) eklendi, dilde ek bir değişiklik yapılmayacak/planlanmayacak
A *a,*b;

 a== b;   // сравнение "указателей"
*a== b;   // вызов оператора ==(A *)
 a==*b;   // вызов оператора ==(A &)

// для операции != аналогично

// операция & - эквивалент(короткая запись) вызову GetPointer

 
Alexey Navoykov :

Çok tembel değilseniz ve biraz ileri giderseniz, her şeyi görebilirsiniz:

Daha da aşağı kaydırırsanız, şunu bulacaksınız:

İlyas :
Her iki dilde de eklendi. Ne yazık ki, bu bir sonraki yapıya dahil edilmeyecek.

Genel olarak, yaklaşık üç yıl önce, büyük olasılıkla ekledikleri açıktır ... Ama haberler nerede, belgeler nerede, yardım, neden sadece & operatöründen bahsediyor, ancak eklendiyse * değil aynı zamanda? & öğesinin belgelerde yer aldığına, ancak * bulunmadığına bakılırsa, yayınlanmadan hemen önce bir nedenden dolayı terk edilen ve nihayet daha sonra eklenen * olduğunu varsayabiliriz. Kesin olarak öğrenmek için, eklendiği yapı hakkında bir haber yazısı bulmanız veya yöneticilerin kendilerine sormanız gerekir.

 
Merak edilen buildleri 1047, 1085, 1210 ve 1224 (yaklaşık o zamanlar) deneyler için verebilirim ;)

 
Andrey Khatimlianskii :
Merak edilen buildleri 1047, 1085, 1210 ve 1224 (yaklaşık o zamanlar) deneyler için verebilirim ;)

Verebilirsin. Profilimde bir e-posta var.

 
Ilya Malev :

Verebilirsin. Profilimde bir e-posta var.

Belki başka biri ister .

 
Evet, gerçek bir winrar teması))
 
47 bende başlamadı.
85 (MT4 13.02.15) * çalışmıyor
1210 (MT5 10/30/15) * çalışmıyor
1224 (MT5 12/16/15) * çalışmıyor (yani, soru dizisinden bu gönderiden üç ay sonra kelimelerle 3)

Aynı zamanda ve 1224'te bir patlama ile derlenir. Bu, yalnızca & eklendiği, ancak * eklenmediği hipotezimi kanıtlıyor.

 

Onlar. Başlangıçta , kodda referanslarının kaldırılması olasılığı olmadan işaretçiler MQL'ye eklendi. İlginç bir yaklaşım.

İşaretçi aritmetiğini bitirmeye devam ediyor veya zaten bir şekilde mümkün mü?

 class A
{
public :

     int iValue;
};
//......................
A m_A[ 5 ];

void OnStart ()
{
A* pA;

     for ( int c = 0 ; c < 5 ; c++)
    {
        pA = &m_A[c]; 
        
        (*pA).iValue =c;
         printf ( "A[%i].iValue: %i" , c, m_A[c].iValue);
         // pA++
    }
}
 
SemenTalonov :
 (* pA ) .iValue =c;

İşte burada: (* ) burada gerekli değil

* yalnızca =, ==, !=, !, && veya || olduğunda µl'de gereklidir
 
Ilya Malev :
Aynı zamanda ve 1224'te bir patlama ile derlenir. Bu, yalnızca & eklendiği, ancak * eklenmediği hipotezimi kanıtlıyor.

Ve yine de, bu arada, operatörle ilgili tüm resmi kanalların (forum, yardım, belgeler) * ölüm sessizliği nedeniyle, belki de yöneticilerin onu tekrar kaldırmayı ve o ve değilmiş gibi davranmayı düşündüğü ortaya çıkabilir. ))) Bu nedenle, şu ana kadar IMHO kullanımına güvenmek genellikle tehlikelidir.