返回本首页
返回目录页
返回知识库

序言:

默认的操作符具有默认的功能,如果说我们想要一种操作符具备我们想要的功能,即赋予操作符新的功能,即操作符重载!
关键字:operator

8.1-实现方式

类成员方式:

  1. bool operator<(const Student&student)
  2. {
  3. return this->m_age < student.m_age ? true : false;
  4. }

全局的方式:

  1. bool operator>(Student &leftStu, Student &rightStu)
  2. {
  3. return leftStu.get_age() > rightStu.get_age();
  4. }

8.2-注意事项:

如果一个重载操作符操作是使用类成员实现的,那么只有当与它一起使用的左操作数是该类的对象时,该操作符才会被调用;而如果该操作符的左操作数确定为其他的类型,则操作符必须被重载为全局函数;
C++要求’=’、’[]’、’()’、’->’操作符必须被定义为类的成员操作符,把这些操作符通过全局函数进行重载时会出现编译错误!
如果有一个操作数是类类型(如string类),那么对于对称操作符(比如==操作符),最好通过全局函数的方式进行重载!