C++的一个问题!请高手指点!!

来源:百度知道 编辑:UC知道 时间:2024/05/22 05:52:39
本人初学C++,下面是一道编程题,我没调试好,请高手指点,该怎么改进,谢谢啦!
一个教师类,有姓名、基本工资等数据成员,设计教师类的派生类讲师类、教授类和助教类,
计算三类教师的课酬,其中课酬的计算方式如下:教授的课酬=课时*50元,讲师的课酬=课时*40元,
助教的课酬=课时*30元,分别定义教授、讲师和助教对象,输入他们的课时, 输出姓名及其薪水
(即基本工资+课酬)。要求能实现运行时多态性.
程序如下:
#include <iostream>
#include <string>
using namespace std;
class Teacher
{
public:
Teacher(string name,int pay);
private:
string name;
int pay;
};

class Jiangshi:public Teacher
{
public:
Jiangshi(string name,int pay);
void kezhou(return keshi1*40);
private:
string name;
int pay;
int keshi1;
};

class Jiaoshou:public Teacher
{
public:
Jiaoshou(string name,int pay);
void kezhou(return keshi2*50);
private:
string name;
int pay;
int keshi2;
};

class Zhujiao:public Teacher
{
public:
Zhujiao(string name,int pay);
void kezhou(return keshi3*30);<

#include <iostream>
#include <string>
using namespace std;
class Teacher //抽象类
{
public:
Teacher(string n,int p):name(n),pay(p){};
void setkeshi(int x){keshi = x;}
void print(){cout << name << " ";}
virtual int kezhou()=0{};//纯虚函数
protected:
string name;
int pay;
int keshi;
};

class Jiangshi:public Teacher
{
public:
Jiangshi(string n,int p):Teacher(n,p){};
int kezhou(){return keshi*pay;}
};

class Jiaoshou:public Teacher
{
public:
Jiaoshou(string n,int p):Teacher(n,p){};
int kezhou(){return keshi*pay;}
};

class Zhujiao:public Teacher
{
public:
Zhujiao(string n,int p):Teacher(n,p){};
int kezhou(){return keshi*pay;}
};
void main()
{
int a,b,c;
Teacher *p;

Jiangshi x("XXX",40);
cout<<&