关于#c++#的问题,如何解决?

1)某学校对教师每月工资的计算规定如下:固定工资+课时补贴。教授的固定工资为5000元,每个课时补贴50元。讲师的固定工资为2500元,每个课时补贴25元。

img

参考如下代码:

#include <iostream>
#include <string>

using namespace std;

// 教师抽象类
class Teacher {
protected:
    string name;
    int coursetime;
    float salary;

public:
    Teacher(const string& n, int ct) : name(n), coursetime(ct) {}
    virtual ~Teacher() {}
    virtual void pay() = 0;  // 纯虚函数
    virtual void print() = 0;  // 纯虚函数
};

// 教授类
class Professor : public Teacher {
public:
    Professor(const string& n, int ct) : Teacher(n, ct) {
        salary = 5000;
    }
    void pay() override {
        salary = salary + coursetime * 50;
    }
    void print() override {
        cout << "Professor:" << name;
        cout << ",salary:" << salary << endl;
    }
};

// 讲师类
class Lectuer : public Teacher {
public:
    Lectuer(const string& n, int ct) : Teacher(n, ct) {
        salary = 2500;
    }
    void pay() override {
        salary = salary + coursetime * 25;
    }
    void print() override {
        cout << "Lectuer:" << name;
        cout << ",salary:" << salary << endl;
    }
};

int main() {
    Teacher *pt;
    Professor wl("Wang Lei", 32);
    pt=&wl;
    pt->print(); // 输出姓名与没加课时费的工资
    pt->pay(); // 计算工资
    pt->print(); // 输出姓名和工资

    Lectuer lm("Li Mei", 48);
    pt=&lm;
    pt->print(); // 输出姓名与没加课时费的工资
    pt->pay(); // 计算工资
    pt->print(); // 输出姓名和工资

    return 0;
}