You can overload a prefix unary operator by declaring a nonmember function taking one argument or a nonstatic member function taking no arguments.
When you prefix a class object with an overloaded unary
operator, for example:
class X
{
// ...
};
void main ()
{
X x;
!x; // overloaded unary operator
}
the operator function call !x can be interpreted as: x.operator !() or operator!(x) . depending on the declarations of the operator function. If both forms of the operator function have been declared, argument matching determines which interpretation is used.
![]()
Overloading Binary Operators
Overloading Operators
Special Overloaded Operators
Restrictions on Overloaded Operators