- 15
- 0
- 约2.67千字
- 约 4页
- 2016-12-03 发布于贵州
- 举报
任务十二 运算符的重载——复数运算
计算机与电子工程系实训课任务单
课程名称: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)双目运算符重载作为友元函数时需要指定两个参数,而作为成员函数时只需要指定一个参数。
任务考核表:
序号 考核内容 配分 评分标准 考核记录
您可能关注的文档
最近下载
- 项目可行性研究报告大纲.pptx VIP
- 小学体育五年级下册教案(最全).doc VIP
- 照顾老人保姆合同范本10篇.docx VIP
- 图形推理专项练习题.FIT).pdf VIP
- 《钢轨超声波探伤系统的设计》【毕业设计论文】.doc VIP
- 2022年广东高考生物试卷真题及答案详解(精校版).pdf VIP
- Panasonic 松下 录像机 DMR-EH59 DMR-EH49 Operating Instructions 操作手册说明书 (英语).pdf
- 迪罗—特马法纤维开松混合设备机械原理.pdf VIP
- 高考英语单词3500乱序版.pdf VIP
- 2024年新课标高考福建高考真题生物试卷(原卷版).docx VIP
原创力文档

文档评论(0)