Přetížení operátoru

operator Klíčové slovo deklaruje funkci určení položek, které operator-symbol znamená při použití instance třídy.Tento nástroj umožňuje operátorovi více než jeden význam nebo "přetížení" ji.Kompilátor rozlišuje mezi různé význam operátor tak, že prověříte typy jeho operandy.

type operator operator-symbol ( parameter-list )

Poznámky

Funkce nejvíce integrovaných operátory můžete upravit globálně nebo na základě třídy podle třídy.Přetížených operátory jsou implementovány jako funkce.

Název přetížených operátor je operatorx, kde x je operátor, v jakém je zobrazen v následující tabulce.Můžete například k přetížení metody operátor sčítání, definujete funkci s názvem operator+.Stejně tak, aby přetížení operátoru sčítání/přiřazení +=, definovat funkci s názvem operator+=.

Redefinable operátory

Operátor

Name

Typ

,

Čárka

binární

!

Logický operátor NOT

Unární

!=

Nerovnost

binární

%

Modulus

binární

%=

Přiřazení modulus

binární

&

Bitový operátor AND

binární

&

Adresa

Unární

&&

Logický operátor AND

binární

&=

Přiřazení bitového operátoru AND

binární

( )

Volání funkce

( )

Operátor přetypování

Unární

*

Násobení

binární

*

Ukazatel přistoupit přes ukazatel

Unární

*=

Přiřazení násobení

binární

+

Sčítání

binární

+

Unární Plus

Unární

++

Přírůstek 1

Unární

+=

Přiřazení sčítání

binární

Odčítání

binární

Unární negace

Unární

––

Snížení hodnoty 1

Unární

–=

Přiřazení odčítání

binární

–>

Výběr členů

binární

–>*

Člen ukazatele výběr

binární

/

Dělení

binární

/=

Přiřazení dělení

binární

<

Menší než

binární

<<

Posun doleva

binární

<<=

Levý shift přiřazení

binární

<=

Menší nebo rovno

binární

=

Přiřazení

binární

==

Rovnost

binární

>

Větší než

binární

>=

Větší nebo rovno

binární

>>

Posun doprava

binární

>>=

Pravý shift přiřazení

binární

[ ]

Dolní index pole

^

Exclusive OR

binární

^=

Výhradní OR přiřazení

binární

|

Bitový inkluzivní operátor OR

binární

|=

Přiřazení s bitovým operátorem OR

binární

||

Logický operátor OR

binární

~

Doplněk

Unární

delete

Delete

new

New

conversion operators

operátory převodu

Unární

1 zvětšit dvě verze Unární a existovat snížení hodnoty operátorů: preincrement a postincrement.

Podívejte se na téma obecných pravidel pro operátor přetížení Další informace.Omezení na různých kategorií přetížených operátory jsou popsány v následujících tématech:

Nemohou být přetíženy operátory uvedeny v následující tabulce.Tabulka obsahuje symboly preprocessor # a ##.

Nonredefinable operátory

Operator

Name

.

Výběr členů

.*

Člen ukazatele výběr

::

Rozlišení rozsahu

? :

Podmiňovací operátor

#

Preprocessor převést na řetězec

##

Preprocessor zřetězit

Přestože přetížených operátory jsou obvykle volány implicitně kompilátor vyskytne v kódu, uživatelé mohou být vyvolány explicitně stejně jako libovolný člen nebo je volána funkce nečlenský:

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

Příklad

Následující příklad přetížení + operátor přidat dvě komplexního čísla a vrátí výsledek.

// 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();
}

Výstup

6.8, 11.2

Viz také

Referenční dokumentace

Operátory jazyka C++

Klíčová slova jazyka C++