C++:运算符重载
运算符重载是类的六个默认成员函数之一,这里的默认是指我们不写,编译器会自己生成的。
运算符重载的目的是增强代码的可读性,运算符重载是具有特殊函数名的函数
//operator是运算符重载的关键字
class date
{
public:date operator+(...){...}
};
特征:
1.不能通过连接其他符号创建新的操作符,即原来没有的操作符不能通过这个来创建
2.重载操作符必须有一个类类型参数
3.用于内置类型的运算符,其含义不能改变
4.作为类的成员函数重载时,其操作数要比不作为成员函数要少,这是因为,成员函数的第一个操作数默认是隐藏的this指针。
5.不能改变操作符中操作数的个数。
6.*是可以重载的(解引用操作符),@不可以。
1.赋值重载(重载=号):
在我该专栏的另一篇文章里有详细介绍
2.前置++和后置++:
由于前置++和后置++其函数名是相同的,参数也同样只有一个,所以为了进行区分,把普通版本作为前置++,增加一个形参的版本作为后置++。
//前置++
date operator++()
{}
//后置++
date operator++(int)
{}
后置的++在使用的时候形参穿不穿参都可以,加参数是为了构成函数重载。有些语言为了避免这个麻烦,就去除了加加,比如python。
3.[]
这个运算符重载很重要
4.取地址运算符重载(&)
在我专栏的另一篇文章有更详细的讲解