VC第十二章
12.1 一般运算符重载 本节介绍运算符重载函数,如何用成员函数来定义双目运算符和单目运算符的重载函数定义,以及如何使用这些重载函数。 12.1.1 运算符重载函数 运算符重载函数是一种特殊的函数,名称为operator运算符。编译器将对象运算表达式自动转换为相应的运算符重载函数的调用。运算符重载函数通常是类的成员函数或者友元函数。运算符可以是双目,也可以是单目,操作数中要求至少有一个是对象。 用成员函数来定义运算符重载函数的一般格式为: 返回类型 类名::operator运算符(形参表) { ... } //函数体 其中,operator是C++关键字。 成员函数体中,当前对象作为一个操作数,无形参形式可定义单目运算符。如果有一个形参,这可定义双目运算符,当前对象作为左操作数,而形参作为右操作数。 用成员函数来定义运算符重载函数,如果有形参的话,最多只有一个。 表12.1 C++中不允许重载的运算符 运算符重载属于一种静态的多态性,C++编译器在编译时将运算符转换为函数调用,一般处理过程如下: 当遇到对象参与运算时,先查找该类中是否有成员函数重载了该运算符。 若有,则调用相应的成员函数来实现这种运算。若没有,就查看是否用友元函数重载了该运算符。 若有友元重载,则调用相应的友元函数。若没有,就用该类中定义的转换函数将对象转换为其它类型,再返回第1步查找。
原创力文档

文档评论(0)