18.2运算符重载的两种形式 18.2.1友元运算符函数 1.友元运算符函数定义的语法形式 友元运算符函数的原型在类的内部声明格式如下: class X friend返回类型 operator运算符(形参表); 在类外定义友元运算符函数的格式如下: 返回类型 operator运算符(形参表) 函数体
18.2运算符重载的两种形式 18.2.1 友元运算符函数 1. 友元运算符函数定义的语法形式 友元运算符函数的原型在类的内部声明格式如下: class X { //… friend 返回类型 operator 运算符(形参表); //… } 在类外定义友元运算符函数的格式如下: 返回类型 operator 运算符(形参表) { 函数体 }
说明:参数表的参数个数 个参数单目运算符 个参数双目运算符 2.双目运算符重载 当用友元函数重载双目运算符时,两个操作数都要传 递给运算符函数。 调用形式: 般而言,如果在类X中采用友元函数重载双目运算符a, 而aa和b是类X的两个对象,则以下两种函数调用方法 是等价的: aa(a bb ∥隐式调用 operator (a(a,bb);∥显式调用
说明:参数表的参数个数 一个参数 单目运算符 二个参数 双目运算符 2. 双目运算符重载 当用友元函数重载双目运算符时,两个操作数都要传 递给运算符函数。 调用形式: 一般而言,如果在类X中采用友元函数重载双目运算符@, 而aa和bb是类X的两个对象,则以下两种函数调用方法 是等价的: aa @ bb; // 隐式调用 operator @(aa,bb); // 显式调用