SORU
3 Kasım 2011, PERŞEMBE


'==' olsun aşırı yükleme yapar'=&!#039;?

Eğer ben el ile aşırı yük == operatör için bir yapı alabilirim != operatör için ücretsiz (muhtemelen tanımlanmış olması boolean tersi) ya da yapmam için aşırı el ile (bile sadece return !(this == rhs)?

Edit-soru ya da hem operatörler aşırı olup olmadığını değil, ama eğer zaten eşitlik operatörünün aşırı yükledim eğer eşitsizlik aşırı etmeliyim olmadığı değildir. Ne olursa olsun, güzel bir cevap verildi.

CEVAP
3 Kasım 2011, PERŞEMBE


operator == aşırı yüklenme operator != vermez. Bunu el ile yapmak zorunda ve kurallı bir şekilde !(left == right) operator == açısından uygulamaktır.

Operatörlerin semantiği standart tarafından dikte değildir. Çok iyi operator == eşitlik henüz aşırı bir şey olarak farklı hatta eşitlik için 8* *tekrar demek için aşırı olabilirbu iyi bir uygulama değildir (aslında cesareti olmalıdır. Şüphe, değer vermez...) gibi.[Bakın (1) Aşağıda]

, Boost.Operators yan not etmek size yardımcı olabilir operatörler için standart uygulamaları. Ayrıca std::rel_ops operator != için standart bir uygulama yok.

(1) hakkında okuyun . daha fazla bilmek ^strong>Three basic rules of operator overloading in C .

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:
C++

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DetroitBORG

    DetroitBORG

    29 Temmuz 2008
  • We've moved!

    We've moved!

    7 Ocak 2008
  • Rhapsody

    Rhapsody

    7 ŞUBAT 2008