Yazma hakkında soru - sayfa 5

 
Ilya Malev :
P.S., a, yani Bir ikili operatörü tekli olarak (2-ary olarak 1-ary olarak) aşırı yüklemek istediniz, sonra evet, elbette tarihler değil. Tek istisna []

evet, MQL'de neyin ve nasıl aşırı yükleneceği sabit kodlanmıştır, bu C++'da, ancak neyin aşırı yükleneceği, nasıl aşırı yükleneceği ve arayacağınız umrumda değil - ^'yi unary olarak aşırı yüklediniz ve gelecekte unary kullanacaksınız

 
Igor Makanu :

evet, MQL'de neyin ve nasıl aşırı yükleneceği sabit kodlanmıştır, bu C++'da, ancak neyin aşırı yükleneceği, nasıl aşırı yükleneceği ve arayacağınız umrumda değil - ^'yi unary olarak aşırı yüklediniz ve gelecekte unary kullanacaksınız

Evet, mql'de hala birçok kısıtlama var gibi görünüyor, iyileştirme için yer var :)

İkili işlemleri tekli işlemler olarak aşırı yükleme yeteneğini de umursamıyorum (ve tersi)

Her durumda, aşırı yüklenirken, orijinal anlamları çoğunlukla kaybolduğundan, buna göre kullanım mantığı artık bu anlamla bağlantılı değildir. izin vermek mantıklı olacaktır.

 
Ilya Malev :

Evet, mql'de hala birçok kısıtlama var gibi görünüyor, iyileştirme için yer var :)

çok ve bu kısıtlamalar ortaya çıkıyor, sonra kayboluyor, sonra beş ... geliştiricilerin bazen geliştirme ortamını değiştirdiği görülüyor)))

Örnek olarak, aşırı yükleme işlemleri (operatör) bölümündeki yardımda, şimdi matrislerle çalışma örnekleri derlenmiyor, ancak eskiden işe yaradıklarını biliyorum, şimdi dahil olan parametrelerin türü için bir kontrol var. aşırı yükleme işlemlerinde, yani sahip olursam

int operatörü*( const int) sonra int operatörü*(int) - derlenmeyecek ve yardımda derlemeyi durduran bir örnek vardı

 
Ilya Malev :

Sevgili programcılar, uzun zamandır bu konu üzerinde kafa yoruyorum. İşlevin dönüş değerini bir şekilde tasarlamak ve örtük olarak yazmak mümkün müdür? Yöntem çağrıları harici olarak aynı olduğunda, bir sınıf yönteminin farklı türde bir değer döndürmesi için.

Ve şunu sorabilirsiniz: Buna hangi amaçlar için ihtiyacınız var? Bu olmadan bir yıldız gemisi kurmak imkansız mı?

 
Vasiliy Sokolov :

Ve şunu sorabilirsiniz: Buna hangi amaçlar için ihtiyacınız var? Bu olmadan bir yıldız gemisi kurmak imkansız mı?

Ve sorabilirsiniz: Neyle ilgileniyorsunuz?

 

Ve bu arada, bu dönüş tipinde bir aşırı yük bile değil.

Genel olarak, bu fikir, uygulama olasılığından çok, çok uzaktır.

 
Vasiliy Sokolov :

Ve şunu sorabilirsiniz: Buna hangi amaçlar için ihtiyacınız var? Bu olmadan bir yıldız gemisi kurmak imkansız mı?

İlk başta ben de eleştireldim ve sonra düşündüm - kendime bir kullanım bulurdum:

 class Point {
public :
   double price;
   long time;
   operator double () const { return price;}
   operator long () const { return time;}
};

class Array {
   Point p[ 3 ] = {{ 0 , 1 }, { 2 , 3 }, { 4 , 5 }};
public :
   const Point & operator []( unsigned i) { return p[i];}
};

void start()
{
   Array a;
   double d = a[ 2 ];   // d == 4
   long t = a[ 2 ];     // t == 5
}
 
Dmitry Fedoseev :

Ve bu arada, bu dönüş tipinde bir aşırı yük bile değil.

Kaptan, sorunun farkında mısınız?

 
Ilya Malev :

Kaptan, sorunun farkında mısınız?

Eğer, ne - Shift + Alt, unuttuysanız.

 
C# açık ve örtük dönüşümlere sahiptir. Uygun şeker gibi, ancak çok dolaylı olarak ve IntelliSense sessiz olacaktır. Bir ay içinde hangi sınıfa dönüşebileceğinizi unutacaksınız. Genel olarak bir OOP oyunu ama sevimli.