c++运算符重载
为什么要重载运算符? 如果不做特殊处理,C++ 的 +、-、*、/ 等运算符只能用于对基本类型的常量或变量进行运算,不能用于对象之间的运算。 有时希望对象之间也能用这些运算符进行运算,以达到使程序更简洁、易懂的目的。例如,复数是可以进行四则运算的,两个复数对象相加如果能直接用+运算符完成,不是很直观和简洁吗? 利用 C++ 提供的“运算符重载”机制,赋予运算符新的功能,就能解决用+将两个复数对象相加这样的问题。 运算符重载,就是对已有的运算符赋予多重含义,使同一运算符作用于不同类型的数据时产生不同的行为。运算符重载的目的是使得 C++ 中的运算符也能够用来操作对象。运算符重载的实质是编写以运算符作为名称的函数。 //一 struct Node { int x , y ; bool operator < ( const Node & w ) const { //重载了小于符号 if ( y == w . y ) return x < w . x ; return y < w . y ; } } e [ 20 ] ; sort ( e + 1 , e + n + 1 ) ; //重载了<运算符才能进行结构体之间的比较 /*加const是因为: 我们不希望在这个函数中对用来进行赋值的“原版”做任何修改。函数加上const后缀的作用是表明函数本身不会修改类成员变量。 加上const