以它为基类,派生出经理类Manager和技术人员类Technician,在经理类中增加数据成员salary(代表经理的月工资),
在技术人员类中增加数据成员wage(代表每小时的工资数)和hours(月工作时数)。
在定义类时,所有类中必须包含有构造函数、析构函数、修改和获取所有数据成员的函数,
以及虚函数计算职工的工资(哪些类中可以定义为纯虚函数?),输出职工的信息。
在main()函数中分别用Employee类型的指针来调用Manager和Technician对象的成员函数,观察虚函数的作用。*/
#include<iostream.h>
#include<string>
class Employee{
public:string name;
int ID;
Employee(int x,string y):name(x),ID(y){}
~Employee(){cout<<"析构employee"<<endl;}
set(int x,string y){ID=x;name=y;}
virtual showsalary()=0;
};
class Manager: public Employee{
public: Manager(int x,string y,int z):Employee(int x,string y)
{salary=z;}
int salary;
virtual showsalary(){cout<<salary<<endl;return salary;}
~Manager(){cout<<"析构manager"<<endl;}
};
class Technician: public Employee{
public:int wage;
int hours;
Technician(int x,string y,int z,int f):Employee(int x,string y){wage=z,hours=f;}
virtual show salary(){cout<<(wage*hours)<<endl;return (wage*hours);}
};
void main()
{
Employee *p;
Technician d1(211106426,"风",10,8);
Manager d2(211106426,"wind"2000);
P=&d1;
d1->showsalary();
}
6 个解决方案
#1
有错误,可以指点一下吗?
#2
P=&d1;
P->showsalary();
P=&d2;
P->showsalary();
P->showsalary();
P=&d2;
P->showsalary();
#3
请问除了这个还有其它问题吗?
#4
我的编译器提示好多错误,其中有什么string的问题。我也不理解。。
#5
#include<string>后还要加一句using std::string;
还有Manager d2(211106426,"wind" ,2000);
还有Manager d2(211106426,"wind" ,2000);
#6
一般百度可解决
#1
有错误,可以指点一下吗?
#2
P=&d1;
P->showsalary();
P=&d2;
P->showsalary();
P->showsalary();
P=&d2;
P->showsalary();
#3
请问除了这个还有其它问题吗?
#4
我的编译器提示好多错误,其中有什么string的问题。我也不理解。。
#5
#include<string>后还要加一句using std::string;
还有Manager d2(211106426,"wind" ,2000);
还有Manager d2(211106426,"wind" ,2000);
#6
一般百度可解决