任务十二 运算符的重载——复数运算.docVIP

  • 15
  • 0
  • 约2.67千字
  • 约 4页
  • 2016-12-03 发布于贵州
  • 举报

任务十二 运算符的重载——复数运算.doc

任务十二 运算符的重载——复数运算

计算机与电子工程系实训课任务单 课程名称:C/C++语言程序设计 上课时间: 周 星期 节 教师姓名:蔡茜 班级名称: 11级软件 班 本任务课时安排:2课时 教学组织形式:任务驱动,理实结合,讲练结合、教学做一体化 任务十二:运算符的重载——复数运算 任务要求: 1、理解运算符重载的概念 2、掌握运算符重载的定义(双目运算符和单目运算符的重载) 3、掌握运算符重载的形式(作为类的成员函数和友元函数) 4、掌握常见运算符的重载方式 任务描述: 1、定义复数类CComplex 2、为复数类添加“+”运算符重载函数作为成员函数 3、在主函数中测试“+”运算符的功能 4、修改“+”运算符重载函数作为复数类的友元函数 5、在主函数中重新测试“+”运算符的功能相关知识点 任务环境: Windows系统电脑,Visual C++ 6.0,IE 6.5以上浏览器 任务实施: 步骤一 定义一个复数类CComplex //CComplex.h class CComplex { private: //定义复数的实部和虚部 double real; double imag; public: CComplex(double x=0.0,double y=0.0);//定义带默认参数的构造函数 void print(); }; //CComplex.cpp CComplex::CComplex(double x,double y) { real=x; imag=y; } CComplex CComplex::operator +(CComplex c) { CComplex t; t.real= real+c.real;//等价于t.real=this-real+c.real; t.imag= imag+c.imag;//等价于t.imag=this-imag+c.imag; return t; } void CComplex::print() { cout(real,imag)endl; } 步骤二 定义“+”运算符重载函数为成员函数 CComplex operator+(CComplex c)//定义“+”运算符重载函数为成员函数,只带一个参数 { CComplex t; t.real=this-real+c.real; t.imag=this-imag+c.imag; return t; } 步骤三 在主函数测试复数类的“+”运算符重载 #include Complex.h void main() { CComplex a(3.0,4.0),b(10.5,20.5),c; c=a+b//等价于c=a.operator +(b); c.print(); } 步骤四 修改“+”运算符重载函数为类的友元函数 // Complex.h文件 class CComplex { private: //定义复数的实部和虚部 double real; double imag; public: CComplex(double x=0.0,double y=0.0); friend CComplex operator+(CComplex x,CComplex y); void print(); }; // Complex.cpp文件 修改原来的运算符重载函数为: CComplex operator +(CComplex x,CComplex y)//两个参数 { CComplex t; t.real=x.real+y.real; t.imag=x.imag+y.imag; return t; } 注意:双目运算符重载作为友元函数时需要指定两个参数,而作为成员函数时只需要指定一个参数。 任务总结: (1)运算符重载的定义: 函数类型 operator运算符(参数列表) { 函数体 } (2)在对运算符进行重载过程中应遵循如下规则: 用户不可以自己定义新的运算符,只能对已有的C++运算符进行重载。 重载不能改变运算符运算对象(即操作数)的个数,即单目运算符只能重载为单目运算符,多目运算符只能重载为多目运算符。 重载不能改变运算符的优先级和结合性。 重载运算符的功能应与该运算符作用于标准类型数据时所实现的功能类似,否则会影响程序的可读性。 (3)双目运算符重载作为友元函数时需要指定两个参数,而作为成员函数时只需要指定一个参数。 任务考核表: 序号 考核内容 配分 评分标准 考核记录

文档评论(0)

1亿VIP精品文档

相关文档