Hatalar, hatalar, sorular - sayfa 1707

 
Комбинатор :
İşaretçiye bir değer atanır ve üzerine yeni A yazılır.

Neresi? Burada?

bu[0] = yeniA;

Burada operatör[], Veri[0] hücresinde bulunan değeri döndürür. Bu hücreye bir referans değil, ona bir işaretçi değil, sadece bu hücrede bulunan değerin bir kopyası , yani. değer. Doğal olarak, bu kopyaya hiçbir şey atanamaz. A sınıfındaki operatör= bunu nasıl değiştiriyor, anlamıyorum.

 
Sergei Vladimirov :
Son örneği hala anlamadım. A sınıfındaki "=" operatörünü aşırı yüklemek, bunu[0] değerini bir değerden bir değere çevirir... Nasıl olduğunu anlayamıyorum. Bunlar MKL'nin bazı özellikleridir, profesyonellerde böyle bir davranış yoktur. fxsaber , bu tasarımı nasıl tahmin ettin? Aşırı yük demek istiyorum = A'da. Veya rastgele mi?
Tamamen anlayışla yaptım. Yoksa bunu yazmazdım.

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

Kitaplıklar: TypeToBytes

fxsaber , 2016.09.21 21:25

Yayınlanan. Şimdi, herhangi bir değişken (yapı veya standart tür) için, bir dizide olduğu gibi yalnızca okuma çalışmaları değil, aynı zamanda YAZMA:

_W(AnyVariable)[Pos] = AnyValue; // Записывает по байтовому смещению Pos значение AnyValue в переменную AnyVariable

Uygulamayı tahmin etmek kolay değildi - muhtemelen ortalama OOP bilgisi için iyi bir test olduğu ortaya çıktı: Sadece sınıflar için klasikleri biliyorum.

Benzer bir şey bilen varsa, eğitim için bağlantıyı paylaşın.


 
fxsaber :
Tamamen anlayışla yaptım. Yoksa bunu yazmazdım.

Onlar. her şeyi anlıyor ama söyleyemiyorsun? )) Açıkça.
 
Sergei Vladimirov :
Onlar. her şeyi anlıyor ama söyleyemiyorsun? )) Açıkça.
Evet, oluyor. Dile getiremez. Bu nedenle, geliştiricilerden bunu doğru yapmalarını rica ediyorum.
 
Sergei Vladimirov :

Neresi? Burada?

bu[0] = yeniA;

Burada operatör[], Veri[0] hücresinde bulunan değeri döndürür. Bu hücreye bir referans değil, ona bir işaretçi değil, sadece bu hücrede bulunan değerin bir kopyası , yani. değer. Doğal olarak, bu kopyaya hiçbir şey atanamaz. A sınıfındaki operatör= bunu nasıl değiştiriyor, anlamıyorum.

Muhtemelen, burada her şey MKL'deki bağlantılarla aynı sıkıntılarda.

A* operator []( const int Pos )
{
     return ( this .Data[Pos]);
}

Nasıl olursa olsun, burada döndürülen bir değer değil, ona bir referanstır, yani. lvalue... Ama o zaman neden hemen yeni bir değer atanamıyor, bunun için neden A sınıfında operatör='ye ihtiyacınız var?.. Anlayın...

 
Sergei Vladimirov :

Muhtemelen, burada her şey MKL'deki bağlantılarla aynı sıkıntılarda.

Nasıl olursa olsun, burada döndürülen bir değer değil, ona bir referanstır, yani. lvalue... Ama o zaman neden hemen yeni bir değer atanamıyor, bunun için neden A sınıfında operatör='ye ihtiyacınız var?.. Anlayın...

Evet, her şey MQL'nin özellikleriyle ilgili. Bir değer işaretçisine bir şey atadığınızda, bu işaretçi otomatik olarak bir nesne referansına dönüştürülür. Sanki herkes dün doğmuş gibi!

Genel olarak, bir fonksiyonun değerini referansa göre döndürme ile ilgili olarak, MQL'de böyle bir fırsata sahip olmayı çok isterim. Uzun zamandır servis masasında bunu soruyorum. Ama dinleniyorlar, güvenli olmadığını söylüyorlar. Aslında bu, argümanları referans olarak iletmekten daha tehlikeli olmasa da.

 
Alexey Navoykov :

Evet, her şey MQL'nin özellikleriyle ilgili. Bir değer işaretçisine bir şey atadığınızda, bu işaretçi otomatik olarak bir nesne referansına dönüştürülür. Sanki herkes dün doğmuş gibi!

Şimdi anlaşıldı, teşekkürler.
 
Şeritte bir satır (lar) seçmek için yeterli fırsat yok. İzleyebilirim, ancak vurgulanmasını sağlarım - hayır.
 
Ne oluyor be?
 2016.09 . 26 14 : 02 : 11.858 Books   invalid book item[RTS- 12.16 ,buy, 98090.00000 ,- 16 ]
 

Tür uyumsuzluğu

MqlTick time_msc - uzun .

CopyTicks - ulong'dan .