什么是函数重载?定义重载函数时需要注意哪些事项?
第1题
(1)定义类Time的私有数据成员hours、minutes和seconds,它们都是int型的数据,分别表示时间的小时、分和秒。请在注释“//**1**”之后添加适当的语句。
(2)完成类Time缺省构造函数的定义,该函数将数据成员hours、minutes和seconds的值初始化为0,请在注释“//** 2**”之后添加适当的语句。
(3)完成类Time带参构造函数的定义,该函数将数据成员hours、minutes和seconds的值分别初始化为参数h、m和s的值,请在注释“//**3**”之后添加适当的语句。
(4)完成类Time中运算符“+”的重载,注意小时、分和秒在相加时的进位问题。请在注释“//**4**”之后添加适当的语句。
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
程序输出结果如下:
8:17:11
源程序文件test33_3.cpp清单如下:
include <iostream.h>
class Time
{
//** 1 **
public:
Time ( )
{
//** 2 **
seconds=0;
}
Time(int h, int m, int s)
{
//** 3 **
minutes=m;
seconds=s;
}
Time operator +(Time&);
void gettime();
};
Time Time::operator +(Time& time)
{
//** 4 **
s=time.seconds+seconds;
m=time.minutes+minutes+s/60;
h=time.hours+hours+m/60;
Time result(h,m%60,s%60);
return result;
}
void Time::gettime()
{
cout<<hours<<":"<<minutes<<":"<<seconds<<end1;
}
void main( )
{
Time t1(3,20,15),t2(4,56,56),t3;
t3=t1+t2;
t3.gettime();
}
第4题
1、定义复数Complex类,编写Add、Sub重载函数,运算符重载“+”、“-”,可分别求取复数/-复数、整数+/-复数,复数+/-整数、复数+/-复数+/-整数的加法和减法,并在主函数中,定义两个复数类对象a、b和一个整形变量c,实现读入c数据,并输出a+b、a+c、c+a 和a+b+c以及a-b、a-c、c-a和a-b-c的值。并回答问题:叙述函数重载和运算符重载端口进入的依据。 2、编写一个班级学生和任课教师的数据输入和显示程序。学生数据包括学生姓名(char *name)、成绩(double score),学生数(static int count) 。教师数据有职工号( char *name)、教授课程编号(int subject)、工资(int salary)、职称(int grade)。请按下列要求编程: (1)创建一组学生{Stu(“zhao”,81), Stu(“qian”,79), Stu(“sun”,67), Stu(“li”,85), Stu(“zhou”,82), Stu(“wu”,83), Stu(“wang”,78)}。求出此时学生数以及这组学生成绩的最大值和最小值,姓名为”sun”和”wang”的学生转走,又转进来一个姓名和成绩分别为”zheng”和90的学生,求出此时学生数以及这组学生成绩的最大值和最小值。 提示: Student 类:两个公有成员函数:void input();输入学生的姓名、成绩和学生数;该函数中应包含person::input();显示输出函数:viod display();显示输出学生的姓名、成绩和学生数,该函数应包含peson::display();。该类中有三个私有数据成员:学生姓名(char *name)、成绩(double score),学生数(static int count) 。 (2)现有讲授01课程的职称为1的“wang”老师, 02课程的职称为2的“sun”老师,讲授03课程的职称为3的“li”老师,显示输出教师的职工号、教授课程编号、工资、职称。其中对应1、2、3职称级别的工资分别为6000、7000、8000三个类别。 提示:Teacher 类,包括两个公有成员函数:输入函数void input();输入教师职工号、职称和系别;该函数中包含person::input();。显示输出函数:viod display();该类中有三个私有数据成员:职工号、教授课程编号、工资、职称。
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!