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

  • Kanaal van Dj0fifty

    Kanaal van D

    28 EKİM 2011
  • DrePwn

    DrePwn

    22 Temmuz 2011
  • RealPapaPit

    RealPapaPit

    16 Mart 2009