●●● ●●●●● 运算符重载的作用 ●●●● ●●● ● class A 运算符重载就是赋予已有的运算符多重 float x, y;含义。C艹通过重新定义运算符,使它 public 能够用于特定类的对象执行特定的功能。 A(float a=0, float b=0 Xa; y=b;) void main(void) {Aa(2,3),b(3,4) c=atb 两对象不能使用十,必须重新定义 }通过重载可使该运算符能像操作基本数据 类型一样,来操作用户自定义的数据类型
运算符重载的作用 6 class A { float x,y; public: A(float a=0, float b=0){ x=a; y=b; } } void main(void) { A a(2,3), b(3,4), c; c=a+b; } 两对象不能使用+,必须重新定义+ 运算符重载就是赋予已有的运算符多重 含义。C++通过重新定义运算符,使它 能够用于特定类的对象执行特定的功能。 通过重载可使该运算符能像操作基本数据 类型一样,来操作用户自定义的数据类型
●●● ●●●●● 运算符重载的作用 ●●●● ●●● ● ●运算符的重载从另一个方面体现了面向对象编 程技术的多态性,即同一运算符根据不同的运 算对象可以完成不同的操作。 为了重载运算符,必须定义一个函数,并告诉 编译器,遇到这个重载运算符时就调用该函数 ,由这个函数来完成该运算符应该完成的操作 。这种函数称为运算符重载函数
运算符重载的作用 ⚫ 运算符的重载从另一个方面体现了面向对象编 程技术的多态性,即同一运算符根据不同的运 算对象可以完成不同的操作。 ⚫ 为了重载运算符,必须定义一个函数,并告诉 编译器,遇到这个重载运算符时就调用该函数 ,由这个函数来完成该运算符应该完成的操作 。这种函数称为运算符重载函数。 7
●●● ●●●●● 运算符重载的方法 ●●●● ●●● ● 1、通过定义一个重载运算符函数来实现。 2、重载运算符函数的一般格式 函数类型 operator运算符(形参列表) 运算符的重载处理} 3、举例 重载“十”,实现复数加法运算
运算符重载的方法 1、通过定义一个重载运算符函数来实现。 2、重载运算符函数的一般格式 函数类型 operator 运算符 ( 形参列表) { 运算符的重载处理 } 3、举例 重载“+”,实现复数加法运算 8
●●● ●●●●● 运算符重载的规则 ●●●● ●●● ● ●只能对已有的运算符进行重载。 ●大部分运算符都可以重载,以下五个除外: 水 sizeof ●运算符重载后,“三不变”。 ●即原运算符的操作数的个数、优先级和结合性 都不变。 ●其他规则。P219
运算符重载的规则 ⚫ 只能对已有的运算符进行重载。 ⚫ 大部分运算符都可以重载,以下五个除外: . .* :: sizeof ? : ⚫ 运算符重载后,“三不变”。 ⚫ 即原运算符的操作数的个数、优先级和结合性 都不变。 ⚫ 其他规则。P219 9
●●● ●●●●● 第14讲运算符重载 ●●●● ●●● ● ●运算符重载的概念、方法和规则 ●运算符重载作为类成员函数 ●运算符重载作为类的友元函数 ●特殊运算符的重载 ●类型转换函数
10 第14讲 运算符重载 ⚫ 运算符重载的概念、方法和规则 ⚫ 运算符重载作为类成员函数 ⚫ 运算符重载作为类的友元函数 ⚫ 特殊运算符的重载 ⚫ 类型转换函数