STL学习笔记一
实验任务
以公司和员工类和查找收入最高员工任务为例,学习建立多文件项目,编译并运行
以月薪制员工为例,学习并实践C++中的继承
- 为员工派生类实现input方法
- 在此基础上为公司类实现findBestPaid方法
- 最后在主函数中测试你的实现,达到查找月薪制最高收入员工的目的
为员工类重载>和=运算符,在此基础上重写公司类的findBestPaid方法,从而提高程序的可读性。在主函数中进行测试。
示范代码
头文件,包含了公司类和员工类的声明
->公司类
1 | class Company |
->员工类
1 | class Employee |
->储存员工用的链表
1 | template<class T> |
cpp文件,包含了头文件的具体实现以及测试用的主程序
->公司类的实现
1 |
|
->员工类的实现
1 |
|
->测试用主程序
1 |
|
解决代码
input方法在示范代码中已经给出
->findBestPaid方法
1 | void Company::findBestPaid() |
使用了链表中的迭代器来进行遍历
->两个操作符的重载
1 | void Employee::operator=(const Employee &otherEmployee) |
->月薪制员工的声明和实现
声明1 |
|
定义
1 |
|
思考随笔
在你完成本次实验的过程中,查找到的收入最高的雇员(按月付酬,HourlyEmployee类型)为什么能够赋值给bestPaid?)
按月付酬的HourlyEmployee对象是由employee类继承而来的,根据“is-a”原则,该对象也是一个employee类的实例对象,因此与同为employee类对象的bestPaid其实是同一个类的对象,属于同一种数据类型,所以可以相互赋值,满足了赋值相容原则。