cpp定义一个抽象基类教师类Teacher由教师类派生出讲师Lecturer、课抽象基类和各派生类均有一个公有成员函数Salary 用于计算各位教师的工资总额。
以下是一个C++的示例代码:
#include <iostream>
#include <vector>
// 抽象基类:课程
class Course {
public:
virtual double Salary() const = 0; // 纯虚函数,计算工资
};
// 派生类:讲师
class Lecturer : public Course {
public:
double Salary() const override {
// 计算讲师的工资
// 假设工资为基本工资乘以1.2
return basicSalary * 1.2;
}
private:
double basicSalary = 5000; // 假设基本工资为5000
};
// 派生类:教师
class Teacher : public Course {
public:
double Salary() const override {
// 计算教师的工资
// 假设工资为基本工资乘以1.1
return basicSalary * 1.1;
}
private:
double basicSalary = 4000; // 假设基本工资为4000
};
int main() {
std::vector<Course*> teachers; // 使用指针存储教师对象
// 创建讲师对象
Lecturer lecturer1;
Lecturer lecturer2;
teachers.push_back(&lecturer1);
teachers.push_back(&lecturer2);
// 创建教师对象
Teacher teacher1;
Teacher teacher2;
teachers.push_back(&teacher1);
teachers.push_back(&teacher2);
double totalSalary = 0;
// 计算总工资
for (const auto& teacher : teachers) {
totalSalary += teacher->Salary();
}
std::cout << "Total salary: " << totalSalary << std::endl;
return 0;
}
在上述代码中,Course类是抽象基类,其中定义了纯虚函数Salary(),用于计算教师的工资总额。Lecturer类和Teacher类都是继承自Course类的派生类,并重写了Salary()函数以计算讲师和教师的工资。在main()函数中,创建了几个讲师和教师对象,并将它们的指针存储在teachers向量中。然后,通过遍历teachers向量,调用每个教师对象的Salary()函数,计算总工资,并输出结果。
原文地址: https://www.cveoy.top/t/topic/i9W3 著作权归作者所有。请勿转载和采集!