序言:
默认的操作符具有默认的功能,如果说我们想要一种操作符具备我们想要的功能,即赋予操作符新的功能,即操作符重载!
关键字:operator
8.1-实现方式
类成员方式:
bool operator<(const Student&student)
{
return this->m_age < student.m_age ? true : false;
}
全局的方式:
bool operator>(Student &leftStu, Student &rightStu)
{
return leftStu.get_age() > rightStu.get_age();
}
8.2-注意事项:
如果一个重载操作符操作是使用类成员实现的,那么只有当与它一起使用的左操作数是该类的对象时,该操作符才会被调用;而如果该操作符的左操作数确定为其他的类型,则操作符必须被重载为全局函数;
C++要求’=’、’[]’、’()’、’->’操作符必须被定义为类的成员操作符,把这些操作符通过全局函数进行重载时会出现编译错误!
如果有一个操作数是类类型(如string类),那么对于对称操作符(比如==操作符),最好通过全局函数的方式进行重载!