Jetzt muss ich eine bestimmte Druckfunktion aufrufen, basierend darauf, zu welcher Klasse der "Mitarbeiter" gehört.Wie Funktionen einer Eltern-Kind-Klasse zu kombinieren?
Meine Eltern-Klasse Druckfunktion in "Employees.cpp":
void Employees::printEmployee() const{
cout<<"Name: "<<employeeName<<endl;
cout<<"Salary:"<<employeeSalary<<endl;
cout<<"Employee ID: "<<employeeID<<endl;
cout<<"Employee Class: "<<employeeClass<<endl<<endl;
}
und ein Beispiel für ein Kind Klasse Druck functpion ist meine "Chef.cpp" Druckfunktion:
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;
}
Der Funktionen von „Chef.cpp“ in „Chef.h“ definiertem, die wie so aussehen: eine Möglichkeit, gibt es
#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
haben nur eine Druckfunktion, die die entsprechenden Mitglieder jeder Klasse druckt. Zum Beispiel hat Meine Chef-Kind-Klasse alle die gleichen Attribute wie die Eltern "Mitarbeiter", hat aber zusätzlich ein "Share Percent" und "Chef Specialty" -Mitglied. Ich habe 2 weitere Kinderklassen mit klassenspezifischen Mitgliedern.
Danke.
Mögliche Duplikat [Virtuelle Funktion Vererbung] (http://stackoverflow.com/questions/17842594/virtual-function-inheritance). Wenn man das als Täter bezeichnet, dehnt man die Dinge ein wenig aus, aber das ist es, was man tun möchte, und es gibt keinen Grund, das noch einmal durchzugehen. – user4581301
Weitere nützliche Informationen hier: https://isocpp.org/wiki/faq/virtual-functions – user4581301
Drucken sollte kein Mitglied Funktionen sein. – Thomas