问题遇到的现象和发生背景
在vs2015中运行的,代码没有报错,但是运行之后,无法将代码运行完全,只运行了个输入,main()函数里的m1.display()无法运行,无法在运行框里显示,但是没有报错。
用代码块功能插入代码,请勿粘贴截图
class Employee//基类
{
protected:
int no;//编号
string name;//姓名
float salary;//月薪总额
static int totalno;//本公司目前编号的最大值
public:
Employee();//构造函数
virtual void pay() = 0;//计算月薪函数
virtual void display() = 0;//输出员工信息函数
};
Employee ::Employee()//构造函数的实现
{
no = totalno++;//输入员工最大编号加1
cout << "职工姓名:";
cin >> name;
salary = 0.0;//总额初始为0
}
class Manager :virtual public Employee//派生类:经理类
{
protected:
float monthlypay;//固定月的工资
public:
Manager();//构造函数
void pay();//计算经理月薪工资
void display();//显示经理信息函数
};
Manager::Manager()//构造函数的实现
{
monthlypay = 8000;
}
void Manager::pay()
{
salary = monthlypay;//月薪总额即固定工资
}
void Manager::display()//显示经理信息函数
{
cout << "经理:" << name << ",编号";
cout << no << ",本月工资:" << salary << endl;
}
#include"Employee.h"
#include"Salesman.h"
#include"Salesmanager.h"
#include"Technician.h"
#include"Manager.h"
#include<iostream>
using namespace std;
int Employee::totalno = 10000;//员工编号基数为10000
int main()
{
Manager m1;
/*Technician t1;
Salesman s1;
Salesmanager sm1;
Employee*em[4] = { &m1,&t1,&s1,&m1 };
cout << "上述人员的基本信息为:" << endl;
for (int i = 0; i < 4; i++)
{
em[i]->pay();
em[i]->display();
}*/
m1.display();
return 0;
}
运行结果及报错内容
没有报错,但是代码没有运行完就跳出黑框
我的解答思路和尝试过的方法
无
我想要达到的结果
能够显示display()的输出