答案:
(1)virtualpublicemployee
(2)publicmanager,publicsalesman
(3)employee(num,ch),manager(num,ch),salesman(num,ch)
(4)salary=monthpay+commrate*sales;
(5)employee::display();
解析:
本题考查类的定义、继承及虚基类与虚函数的应用。
首先我们来看一下基类employee的程序代码,在基类中构造了一个构造函数和两个虚函数,其中虚函数display()可以输出编号和工资。
由整个程序的作用可以看出,类salesman与类manager应继承类employee,而类salesmanager则应该继承类salesman与类manager.在每个类中都有函数pay()和display(),且在每个类中都对这两个函数进行了重新定义。这样这两个同名函数出现多个地址映射。要解决这个问题,在C++语言中,采用虚基类。因此,第(1)空的答案是virtualpublicemployee.
第(2)空也是表示类的继承,类salesmanager继承类salesman与类manager,因此,此空答案为publicmanager,publicsalesman.
结合整个程序来看,其他三个类都是类salesmanager的父类,因此,第(3)空处应该填employee(num,ch),manager(num,ch),salesman(num,ch)。
根据题目的要求,再结合主函数与类salesmanager的模块可以推出第(4)空处的功能是计算销售经理的月总工资,而计算方法是固定工资加提成。因此,答案为salary=monthpay+commrate*sales.
对比三个子类的display()函数,不难发现第(5)空应为employee::display()。
答案:A
计算机所以的数据都是采用0和1表示的