以下是一个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()函数,计算总工资,并输出结果。

cpp定义一个抽象基类教师类Teacher由教师类派生出讲师Lecturer、课抽象基类和各派生类均有一个公有成员函数Salary 用于计算各位教师的工资总额。

原文地址: https://www.cveoy.top/t/topic/i9W3 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录