文档详情

C++ch4-运算符重载-4学时教程.ppt

发布:2017-05-01约1.23万字共58页下载文档
文本预览下载声明
C++面向对象程序设计教程;4.1 运算符重载的概念;运算符重载的概念;例4.1 通过函数实现复数相加示例。 // 声明复数数 class Complex { private: // 数据成员 double real; // 实部 double image; // 虚部 public: // 公有函数 Complex(double r = 0, double i = 0): real(r), image(i){ }// 构造函数 void Show() const; // 输出复数 static Complex Add(const Complex z1, const Complex z2); // 复数加法 }; void Complex::Show() const // 输出复数 { if (image 0) cout real image i endl; // 虚部为负 else if (image == 0) cout real endl; // 虚部为0 else cout real “+” image “i” endl; // 虚部为负 } ……;例4.1 通过函数实现复数相加示例。 …… Complex Complex::Add(const Complex z1,const Complex z2) { Complex z(z1.real + z2.real, z1.image + z2.image);// 定义复数对象 return z; // 返回复数 } int main() // 主函数main() { Complex z1(2, 3), z2(6, -5), z3; // 定义复数对象 z1.Show(); // 输出z1 z2.Show(); // 输出z2 z3 = Complex::Add(z1, z2); // z3=z1+z2 z3.Show(); // 输出z3 system(PAUSE); // 输出系统提示信息 return 0; // 返回值0, 返回操作系统 };运算符重载;运算符重载——语法格式;例4.2 通过运算符重载实现复数相加的示例。 #include iostream // 编译预处理命令 using namespace std; // 使用命名空间std // 声明复数数 class Complex { private: // 数据成员 double real; // 实部 double image; // 虚部 public: // 公有函数 Complex(double r = 0, double i = 0): real(r), image(i){}// 构造函数 void Show() const; // 输出复数 friend Complex operator+(const Complex z1,const Complex z2) { return Complex(z1.real + z2.real, z1.image + z2.image); } }; void Complex::Show() const // 输出复数 { if (image 0) cout real image i endl; // 虚部为负 else if (image == 0) cout real endl; // 虚部为0 else cout real + image i endl; // 虚部为负 } ……;例4.2 通过运算符重载实现复数相加的示例。 …… // int operator+(int a, int b){ return a + b; } // 错,重载运算符的函数的参数不能全部是C++的标准类型 int main() // 主函数main() { Complex z1(2, 3), z2(6, -5), z3; // 定义复数对象 z1.Show(); // 输出z1 z2.Show(); // 输出z2 z3 = z1 + z2; // 进行复数加法运算 z3.Show(); // 输出z3 system(PAUSE); // 输出系统提示信息 return 0; // 返回值0, 返回操作系统 };4.2 运算符重载方式;运算符重载方式 ;补充:友元的提出;补充:友元分类及作用;补充:友元函数;运算符重载;4.2.1 运算符重载为类的成员函数; 运算符重载;class
显示全部
相似文档