«operator-overloading» etiketlenmiş sorular

Operatör aşırı yükleme, ilgili işlenenlerin türlerine bağlı olarak operatörler için özel uygulamalara izin veren bir programlama dilinin özelliğidir. Bazı diller yeni operatörlerin tanımlanmasına izin verirken diğerleri yalnızca mevcut operatörlerin yeniden tanımlanmasına izin verir.

7
Operatörün aşırı yüklenmesi için temel kurallar ve deyimler nelerdir?
Not: Yanıtlar belirli bir sırayla verildi , ancak birçok kullanıcı yanıtları verildikleri zaman yerine oylara göre sıraladığından, yanıtların en anlamlı oldukları sıraya göre bir listesi: C ++ 'da aşırı operatör yüklemesinin Genel Sözdizimi C ++ 'da Operatör Aşırı Yüklemesinin Üç Temel Kuralı Üye ve Üye Olmayanlar Arasındaki Karar Aşırı yüklenecek …

16
Java neden operatör aşırı yüklemesi sunmuyor?
C ++ 'dan Java'ya gelince, cevaplanmamış soru şu: Java neden operatör aşırı yüklemesini içermiyordu? Bundan Complex a, b, c; a = b + c;daha basit değil Complex a, b, c; a = b.add(c);mi? Bunun, operatörün aşırı yüklenmesine izin vermemesinin geçerli bir argümanı olduğu bilinen bir nedeni var mı ? Nedeni …

10
Güzel baskı C ++ STL kapları
Lütfen bu yayının sonundaki güncellemeleri not edin. Güncelleme: Bu kütüphane için GitHub'da halka açık bir proje oluşturdum ! Bir kez ve herkes için tüm STL kaplarını güzel bir şekilde basmakla ilgilenen tek bir şablona sahip olmak istiyorum operator<<. Sahte kodda, ben böyle bir şey arıyorum: template<container C, class T, String …

15
== ve! = Karşılıklı bağımlı mıdır?
Ben C ++ operatör aşırı yükleme hakkında öğreniyorum ve bunu görüyorum ==ve !=sadece kullanıcı tanımlı türleri için özelleştirilebilir bazı özel fonksiyonlar vardır. Benim endişem, neden iki ayrı tanım gerekli? Ben eğer düşünülmektedir a == bdoğrudur, o zaman a != b, tanımı gereği, çünkü tersi otomatik sahte ve yardımcısı olduğunu ve …

8
C # 'daki köşeli parantez operatörünü nasıl aşırı yüklerim?
Örneğin, DataGridView bunu yapmanıza izin verir: DataGridView dgv = ...; DataGridViewCell cell = dgv[1,5]; ama hayatım boyunca dizin / köşeli parantez operatörü ile ilgili belgeleri bulamıyorum. Buna ne diyorlar? Nerede uygulanır? Fırlatabilir mi? Aynı şeyi kendi sınıflarımda nasıl yapabilirim? ETA: Tüm hızlı cevaplar için teşekkürler. Kısaca: ilgili belgeler "Eşya" özelliğinin …





6
C # Genişletme Yöntemleriyle Operatör Aşırı Yüklemesi
Ben C # StringBuildersınıfına bir operatör aşırı yük eklemek için uzantı yöntemleri kullanmaya çalışıyorum . Özellikle, verilen StringBuilder sb, sb += "text"eşdeğer olmak istiyorum sb.Append("text"). Aşağıdakiler için bir uzantı yöntemi oluşturmak için sözdizimi şöyledir StringBuilder: public static class sbExtensions { public static StringBuilder blah(this StringBuilder sb) { return sb; } …


14
Scala'nın operatörünün aşırı yüklenmesini “iyi”, ancak C ++ 'ın “kötü” yapan özelliği nedir?
C ++ 'da operatör aşırı yüklenmesi, birçok kişi tarafından Kötü Bir Şey (tm) ve daha yeni dillerde tekrarlanmaması için bir hata olarak kabul edilir. Kesinlikle, Java tasarlanırken özellikle bırakılan bir özellikti. Şimdi Scala'da okumaya başladım, operatör aşırı yüklemesine çok benzeyen bir şey olduğunu görüyorum (teknik olarak operatör aşırı yüklemesi olmamasına …

9
Aslında aşırı yüklenmenin bir nedeni var mı? kısa devre yok mu?
Operatörlerin kısa devre davranışı &&ve ||programcılar için harika bir araçtır. Fakat aşırı yüklendiğinde neden bu davranışı kaybediyorlar? Operatörlerin fonksiyonlar için sadece sözdizimsel şeker olduğunu anlıyorum, ancak operatörler boolbu davranışa sahipler, neden bu tek tiple sınırlandırılmalı? Bunun arkasında herhangi bir teknik gerekçe var mı?

5
Üye erişim operatörlerini aşırı yükleme ->,. *
Ben, üye erişim operatörler haricinde çoğu operatör aşırı yüklenmesini anlıyorum ->, .*, ->*vb Özellikle, bu operatör işlevlerine ne aktarılır ve ne döndürülmelidir? Operatör işlevi (örneğin operator->(...)) hangi üyeye başvurulduğunu nasıl biliyor? Bilebilir mi Bilmesi bile gerekiyor mu? Son olarak, dikkate alınması gereken sabit hususlar var mı? Örneğin, böyle bir şeyi …

8
<< operatörü bir arkadaş olarak mı yoksa bir üye işlevi olarak mı uygulanmalıdır?
Temelde soru bu, uygulamanın "doğru" bir yolu var operator&lt;&lt;mı? Okuma bu I gibi o şey görebilirsiniz: friend bool operator&lt;&lt;(obj const&amp; lhs, obj const&amp; rhs); gibi bir şeye tercih edilir ostream&amp; operator&lt;&lt;(obj const&amp; rhs); Ama neden birini veya diğerini kullanmam gerektiğini tam olarak anlayamıyorum. Kişisel durumum: friend ostream &amp; operator&lt;&lt;(ostream &amp;os, …

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.