就我的理解
那些运算符本身功能是有限的
比如不能进行复数的加减
但是我们重载以后
就可以让它实数与实数相加,虚数与虚数相加,最后结果也是复数
还有字符串string里也有很多重载的地方,像两个字符串也可以相加,等等
重载的主要目的是,简洁易懂,原理上其实也是通过函数实现的,像a + b用add(a,b) 也行,但是看起来要就没那么直观了。
举例:
class Point
{
public:
friend const Point operate+(const Point& p1, const Point& p2);
int x, y;
}
const Point operate+(const Point& p1, const Point& p2)
{
Point p;
p.x = p1.x + p2.x;
p.y = p1.y + p1.y;
return p;
}
void main()
{
Point p, p1, p2;
p = p1+p2;
}
明白了吗?如果没有操作符重载,你是不能做p = p1+p2;这个操作的。操作符重载使你可以自己定制操作符的运算方式