Yazma hakkında soru - sayfa 7

 
Dmitry Fedoseev :

Eh, insanların sorunları var))) Dükkan, ben böyle yaşadım!

Bu arada, d=array[5].to_double() yazmak d=(double)array[ 5] yazmaktan çok daha kolay, sadece noktaya basın. Ama kolay yollar aramıyoruz...

Neden d=(double)array[5] yazalım? Fikir bu - bu önemsiz şeylerle uğraşmayın. İşte gerçek bir kod parçası:

MYCRTMFLT(i+ 1 , chart[MYSEG(MYSCNT-i).start].time,
               chart[MYSEG(MYSCNT-i).start].price,
               chart[MYSEG(MYSCNT-i).top].time,
               chart[MYSEG(MYSCNT-i).top].price, 
               chart[MYSEG(MYSCNT-i).top].price>chart[MYSEG(MYSCNT-i).start].price?
                 MYCLRUP : MYCLRDOWN, STYLE_SOLID , true );

chart[index] struct {fiyat; zaman}. Ve çoğu durumda bağlamdan anlaşılabilirken neden sürekli olarak .time/.price ekliyorum? Evet, bazen sormak gerekli olacaktır (sondan bir önceki satırda olduğu gibi), ancak çoğu durumda hayat daha kolay hale gelecek ve daha az yazı olacaktır.

 
Dmitry Fedoseev :

Eh, insanların sorunları var))) Alışveriş, ben böyle yaşadım!

Bu arada, d=array[5].to_double() yazmak d=(double)array[ 5] yazmaktan çok daha kolay, sadece noktaya basın. Ama kolay yollar aramıyoruz...

Evet, elbette, derleme sırasında d'nin double'dan başka bir şey olamayacağı biliniyorsa mutlaka d=(double)array[5] yazmalısınız. fareler ağladı, iğneledi ama kaktüsü kemirmeye devam etti...

 
Ilya Malev :

Evet, elbette, derleme sırasında d'nin double dışında bir şey olamayacağı biliniyorsa mutlaka d=(double)array[5] yazmalısınız. fareler ağladı, iğneledi ama kaktüsü kemirmeye devam etti...

C++'da bu tür amaçlar için operatörü <=> d için aşırı yüklerler, kemirirler ve ağlamazlar ;-)

PS/ ve ilişkisellik ve önceliklerin bir sonucu olarak, genellikle << operatörünü daha uygun olarak kullanırlar.
 
pavlick_ :

Neden d=(double)array[5] yazalım? Fikir bu - bu önemsiz şeylerle uğraşmayın. İşte gerçek bir kod parçası:

chart[index] struct {fiyat; zaman}. Ve çoğu durumda bağlamdan anlaşılabilirken neden sürekli olarak .time/.price ekliyorum? Evet, bazen sormak gerekli olacaktır (sondan bir önceki satırda olduğu gibi), ancak çoğu durumda hayat daha kolay hale gelecek ve daha az yazı olacaktır.

Yaz (çift) - anladığım kadarıyla, burada onu aşırı yükleyecekler, böylece dizi[5] bir tür nesne değil, çift sayı döndürecek. Bu doğru değil mi?

Yukarıdaki örneğin neresinde bu bağlam anlaşılabilir? Belki de parametre türü MYCRTMFLT'dir? Bu, dönüş türünde bir aşırı yüktür.

 
fxsaber :

Eğer gerçekten istiyorsan, yapabilirsin

vb.

  _W(Color)[ 2 ] = ( uchar ) 230 ;              // Записали по смещению 2 значение (uchar)230.
  PRINT(Color)                           // Убедились, что Color теперь C'241,248,230'
Bu şans eseri Print(ColorToString(Color&(uint(-1)&65535)|(230<<16))); ile aynı şey değildir. ?

Kodlarınızı incelemeye devam ederek beynimi kıracağımdan korkuyorum.

Yani, alt çizgili büyük harflerin bolluğu ve bağlam çözümleme işlemleri dışında yöntemlerinizdeki her şeyin harika (şaka değil) olduğunu söylemek istiyorum :)

Bence (bağlam çözümleme işleminin) aşırı yüklenmesine izin verilirse, o zaman kitaplıklarınızla birlikte astral düzleme gideceksiniz :lol:

 
Maxim Kuznetsov :

PS/ ve ilişkisellik ve önceliklerin bir sonucu olarak, genellikle << operatörünü daha uygun olarak kullanırlar.

Bana da öyle oldu dürüst olmak gerekirse. >> ile << aşırı yükleyin ve acı çekmeyin. Ancak bu, T() aşırı yüklemesini çözmenin arzu edilirliğini değiştirmez.

 
Dmitry Fedoseev :

Anladığım kadarıyla (çift) yaz, burada aşırı yükleyecekler, böylece dizi[5] bir tür nesne değil, çift sayı döndürecek. Bu doğru değil mi?

Yukarıdaki örneğin neresinde bu bağlam anlaşılabilir? Belki de parametre türü MYCRTMFLT'dir? Bu, dönüş türünde bir aşırı yüktür.

Ben hiç sorun görmüyorum.

 double d;
d = chart[i];   // call operator double

void f( datetime t);
f(chart[i]);   // call operator datetime

makro sonunda ya bir tanımlayıcıyla ya da derleyicinin bağlamdan ne istediğini anlayacağı birişlev çağrısı ile sona erecektir. Ve değilse (belirsizlik üzerine bir lanetle derleyici hatası), o zaman ona her zaman yardım edebilirsiniz: chart[i].price

 
Ilya Malev :

Evet, elbette, derleme sırasında d'nin double'dan başka bir şey olamayacağı biliniyorsa mutlaka d=(double)array[5] yazmalısınız. fareler ağladı, iğneledi ama kaktüsü kemirmeye devam etti...

d'nin yanı sıra dizi denen bir şey daha var.

Derleyicinin uygunsuz türler atama konusunda uyarması bile kötü değil. Derleyiciye, bunu yazanların sonuçtan tam olarak sorumlu olduğunu göstermek gerekir, böylece daha sonra derleyici uyarılarının eksikliğinden şikayet olmaz.

 
pavlick_ :

Ben hiç sorun görmüyorum.

...

Ben de öyle.
 
Dmitry Fedoseev :

Derleyicinin uygunsuz türler atama konusunda uyarması bile kötü değil. Derleyiciye, bunu yazanların sonuçtan tam olarak sorumlu olduğunu göstermek gerekir, böylece daha sonra derleyici uyarılarının eksikliğinden şikayet olmaz.

Ancak bu atama için double(){...} operatörünü kendisi tanımladığında değil. Açıkçası, daha sonra bir çift değişkenden sonra yazmak (çift) veya derleyici uyarıları almak için değil.

Genel olarak, konuşma zaten bir daire içinde gidiyor, umarız zaman içinde aşırı tip yüklemeye hala izin verilir, etkinleştirmek için ayarlarda bir yerde kontrol etmeniz ve "olmayı kabul ediyorum" demeniz gerekip gerekmediğini kişisel olarak umursamayacağım. sonuçtan tamamen sorumludur".