Aracılığıyla paylaş


Private int value

operator Anahtar sözcüğünü ne belirten bir işlev bildirir operator-symbol bir sınıfın örneklerini uygulandığında anlamına gelir.Bu işleç birden fazla anlamı verir veya "overloads".Derleyici operatörün işlenenlerini türleri inceleyerek tarafından farklı anlamlarý ayırt eder.

type operator operator-symbol ( parameter-list )

Notlar

Genel olarak veya sınıf sınıf bazında en yerleşik işlecin işlevini tanımlayabilirsiniz.Aþýrý yüklenmiþ Ýþleçler işlevleri olarak uygulanır.

Fazla yüklenmiş işleç adıdır operatorx, burada x aşağıdaki tabloda göründüğü gibi operatördür.Örneğin, toplama operatörü tekrar için adında bir işlevi tanımlar operator+.Benzer şekilde, ek/atama iþleci +=, adında bir işlevi tanımlar operator+=.

Redefinable işleçler

İşleç

Ad

Tür

,

Virgül

İkili

!

Mantıksal değil

Tekli

!=

Eşitsizlik

İkili

%

Modül

İkili

%=

Modül atama

İkili

&

Bitsel ve

İkili

&

Adresi

Tekli

&&

Mantıksal and

İkili

&=

Bitsel and ataması

İkili

( )

İşlev çağrısı

( )

Atama işlecinin

Tekli

*

Çarpma

İkili

*

İşaretçiye

Tekli

*=

Çarpma ataması

İkili

+

Buna ek olarak

İkili

+

Tekli artı

Tekli

++

Artış 1

Tekli

+=

Toplama ataması

İkili

Çıkarma

İkili

Tekli Negatiflik

Tekli

––

Azaltma 1

Tekli

–=

Çıkarma ataması

İkili

–>

Üye seçimi

İkili

–>*

İşaretçiyi üye seçimi

İkili

/

Bölme

İkili

/=

Bölme ataması

İkili

<

Küçüktür

İkili

<<

Sol shift

İkili

<<=

Sol kaydırma ataması

İkili

<=

Ya da eşit

İkili

=

Atama

İkili

==

Eşitlik

İkili

>

Büyüktür

İkili

>=

Sıfırdan büyük veya eşit

İkili

>>

Sağa kaydırma

İkili

>>=

Sağa kaydırma ataması

İkili

[ ]

Dizi indisi

^

Exclusive veya

İkili

^=

Özel veya atama

İkili

|

Bitsel or dahil

İkili

|=

Bitsel or Ataması (dahil)

İkili

||

Mantıksal or

İkili

~

Kişinin Tamamlayıcı

Tekli

delete

Delete

new

New

conversion operators

dönüştürme işleçleri

Tekli

1 İki tekli sürümü artırmak ve azaltma işleçleri vardır: preincrement ve postincrement.

Bkz: Aþýrý yüklemesi için genel kurallar daha fazla bilgi için.Aþýrý yüklenmiþ Ýþleçler çeşitli kategorileri kısıtlamalar aşağıdaki bölümlerde açıklanmıştır:

Aşağıdaki tabloda gösterilen işleçleri aşırı yüklenemez.Önişlemci simgeleri içerir # ve ##.

Nonredefinable işleçler

Operator

Name

.

Üye seçimi

.*

İşaretçiyi üye seçimi

::

Kapsam çözünürlük

? :

Koşullu

#

Dize Önişlemci Dönüştür

##

Önişlemci Birleştir

Kodu karşılaşıldığında aþýrý yüklenmiþ Ýþleçler genellikle dolaylı olarak derleyici tarafından denir olmakla birlikte, bunların herhangi bir üyesi ile aynı şekilde açıkça çağrılabilir veya dahil olmayan işlevi çağrılır:

Point pt;
pt.operator+( 3 );  // Call addition operator to add 3 to pt.

Örnek

Aşağıdaki örnek aþýrý yükleme + işleci iki karmaşık sayılar ve sonucu verir.

// operator_overloading.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;

struct Complex {
   Complex( double r, double i ) : re(r), im(i) {}
   Complex operator+( Complex &other );
   void Display( ) {   cout << re << ", " << im << endl; }
private:
   double re, im;
};

// Operator overloaded using a member function
Complex Complex::operator+( Complex &other ) {
   return Complex( re + other.re, im + other.im );
}

int main() {
   Complex a = Complex( 1.2, 3.4 );
   Complex b = Complex( 5.6, 7.8 );
   Complex c = Complex( 0.0, 0.0 );

   c = a + b;
   c.Display();
}

Çıktı

6.8, 11.2

Ayrıca bkz.

Başvuru

C++ işleçleri

C++ anahtar sözcükler