C++语言程序设计 规则和限制 算°可以重载C++中除下列运算符外的所 有运算符: ? sizeof 重。只能重载C++语言中己有的运算符, 载 不可臆造新的。 不能改变操作数个数。 不改变原运算符的优先级和结合性。 ●经重载的运算符,其操作数中至少应 该有一个是自定义类型。 x
C++语言程序设计 11 运 算 符 重 载 规则和限制 ⚫ 可以重载C++中除下列运算符外的所 有运算符: . .* :: ?: sizeof ⚫ 只能重载C++语言中已有的运算符, 不可臆造新的。 ⚫ 不能改变操作数个数。 ⚫ 不改变原运算符的优先级和结合性。 ⚫ 经重载的运算符,其操作数中至少应 该有一个是自定义类型
C++语言程序设计 两种形式 算 持°重载为类成员函数。 重。重载为友元函数。 载 x 12
C++语言程序设计 12 两种形式 ⚫ 重载为类成员函数。 ⚫ 重载为友元函数。 运 算 符 重 载
C++语言程序设计 运算爷函数 声明形式 算函数类型 operator运算符(形参) 符重载 重载为类成员函数时 参数个数=原操作数个数1(后置++、-除外) ●重载为友元函数时参数个数=原操作数个数 且至少应该有一个自定义类型的形参
C++语言程序设计 13 运算符函数 ⚫ 声明形式 函数类型 operator 运算符(形参) { ...... } ⚫ 重载为类成员函数时 参数个数=原操作数个数-1(后置++、--除外) ⚫ 重载为友元函数时 参数个数=原操作数个数, 且至少应该有一个自定义类型的形参。 运 算 符 重 载
C++语言程序设计 运算符成员函数的设计 算。双目运算符B 如果要重载B为类成员函数,使之能够实 重现表达式opr1 B oprd2,其中oprd1为A 载 类对象,则B应被重载为A类的成员函数, 形参类型应该是oprd2所属的类型。 经重载后,表达式oprd1 B oprd2相当于 oprd1 operator B(oprd2)
C++语言程序设计 14 运算符成员函数的设计 ⚫ 双目运算符 B – 如果要重载 B 为类成员函数,使之能够实 现表达式 oprd1 B oprd2,其中 oprd1 为A 类对象,则 B 应被重载为 A 类的成员函数, 形参类型应该是 oprd2 所属的类型。 – 经重载后,表达式 oprd1 B oprd2 相当于 oprd1.operator B(oprd2) 运 算 符 重 载
C++语言程序设计 例81 算 将“+”、“-”运算重载为复数类 得的成员函数 重 载°规则 实部和虚部分别相加减 操作数: 两个操作数都是复数类的对象。★ x
C++语言程序设计 15 运 算 符 重 载 例 8.1 将“+”、“-”运算重载为复数类 的成员函数。 ⚫ 规则: – 实部和虚部分别相加减。 ⚫ 操作数: – 两个操作数都是复数类的对象