C++ in a Nutshell

   
operator keyword Function call syntax for operators

operator-function-id ::= operator op-symbol operator op-symbol < [ template-arg-list ] > conversion-function-id ::= operator conversion-type-id conversion-type-id ::= type-specifier-seq [ conversion-declarator ] conversion-declarator ::= ptr-operator [ conversion-declarator ] ptr-operator ::= * [ cv-qualifier-seq ] & [::] nested-name :: * [ cv-qualifier-seq ]

The operator keyword converts an operator symbol into function notation. You can use the operator keyword when invoking an operator or when overloading an operator.

Example

int x = operator +(10, 32); complex<double> c, d; c. operator +=(d); operator+=(c, d); // Same as above bigint operator *(const bigint& a, const bigint* b);

Table 12-1 lists the operator symbols ( op-symbol ) that can be overloaded. Alternative tokens (shown in parentheses) are interchangeable with their symbolic equivalents.

Table 12-1. Operator symbols that can be overloaded

delete

/

=

%=

<<=

++

delete [ ]

%

<

^= ( xor_eq )

==

--

new

^ ( xor )

>

&= ( and_eq )

!= ( not_eq )

,

new [ ]

& ( bitand )

+=

= ( or_eq )

<=

->*

+

( bitor )

-=

<<

>=

->

-

~ ( compl )

*=

>>

&& ( and )

( )

*

! ( not )

/=

>>=

( or )

[ ]

See Also

expression , identifier , template , type , Chapter 5

   

Категории