文章目录
一、运算符重载规则
1. 重载运算符的限制
可以重载的运算符
+ - * / % ^ & | ~
! = < > += -= *= /= %
^= &= |= << >> >>= <<= == !=
<= >= && || ++ -- ->* ‘ ->
[] () new delete new[] delete[]
不能重载的算符
. :: .* ?: sizeof
重载运算符函数可以对运算符作出新的解释,但原有基本语义不变:
1.不改变运算符的优先级
2.不改变运算符的结合性
3.不改变运算符所需要的操作数
4.不能创建新的运算符
2.运算符重载的语法形式
运算符函数是一种特殊的成员函数或友元函数
成员函数的语法形式为:
类型(返回类型) 类名(重载该运算的类) :: operator op(被重载的运算符) ( 参数表 )
{
// 相对于该类定义的操作
}
一个运算符被重载后,原有意义没有失去,只是定义了相对一特定类的一个新运算符
#include<iostream>
#include<cstdlib>
using namespace std;
class Calculator
{
public:
Calculator() {
value = 0 ; } ;
void operator ++ () ;
void operator -- () ;
unsigned int operator() () ;
private:
unsigned int value;
};
int main(