重载运算符

· · 算法·理论

结构体内

struct asdf{
    int x, y;
    bool operator<(const asdf &a)const{ 
        return x<a.x||(x==a.x&&y<a.y);
    }
};

结构体外

bool operator<(const int &a,const int &b){ 
    return a>b;
}

可重载运算符

种类 运算符
双目算术运算符 +(加),-(减),*(乘),/(除),%(取模)
关系运算符 ==(等于),!=(不等于),<(小于),>(大于),<=(小于等于),>=(大于等于)
逻辑运算符 ||(逻辑或),&&(逻辑与),!(逻辑非)
单目运算符 +(正),-(负),*(指针),&(取地址)
自增自减运算符 ++(自增),--(自减)
位运算符 |(按位或),&(按位与),~(按位取反),^(按位异或),<<(左移),>>(右移)
赋值运算符 =,+=,-=,*=,/=,%=,&=,|=,^=,<<=,>>=
空间申请与释放 new,delete,new[],delete[]
其他运算符 ()(函数调用),->(成员访问),,(逗号),[](下标)

不可重载运算符

更多细节可以参考《C++ 重载运算符和重载函数》。

back