所以現在我必須根據「員工」屬於哪個類別來調用特定的打印功能。如何組合父子類的功能?
在 「Employees.cpp」 我的父類打印功能:
和子類打印functpion的一個例子是我的 「Chef.cpp」 打印功能:
void Chef::printChef() const{
cout<<"Name: "<<employeeName<<endl;
cout<<"Salary: $"<<calculateSalary()<<endl;
cout<<"Employee ID: "<<employeeID<<endl;
cout<<"Employee Class: "<<employeeClass<<endl;
cout<<"Share Perecent: "<<chefSharePercent<<"%"<<endl;
cout<<"Chef's Specialty: "<<chefSpecialty<<endl<<endl;
}
的「Chef.cpp」的功能在「Chef.h」中定義,如下所示:
#ifndef CHEF_H_
#define CHEF_H_
#include <string>
#include "employee.h"
using namespace std;
class Chef : public Employees{
public:
Chef();
Chef(double percent, string specailty);
void setPercent(double percent);
void setSpecialty(string specailty);
double getPerecent() const;
string getSpecialty() const;
double calculateSalary() const;
void printChef() const;
private:
double chefSharePercent;
string chefSpecialty;
};
#endif
有什麼辦法可以只需一個打印功能即可打印每個班級的相應成員。例如,我的廚師兒童班具有與父母「員工」相同的屬性,但另外還有「份額百分比」和「廚師專長」成員。我還有另外兩個具有特定類別成員的子類。
謝謝。
的可能的複製[虛擬函數繼承](http://stackoverflow.com/questions/17842594/virtual-function-inheritance)。稱這是一個愚蠢的舉動,但是這是你想要做的事情,沒有必要再重複一遍。 – user4581301
更多有用的信息在這裏:https://isocpp.org/wiki/faq/virtual-functions – user4581301
打印不應該是一個成員函數。 – Thomas