نظام رواتب بالتجريد — تحدي C++
صنف مجرد Employee(name) بدالة افتراضية خالصة salary(). Engineer(name, base) راتبه base، وManager(name, base, reports) راتبه base + 100 لكل موظف تحت إدارته. اكتب payroll(const std::vector<Employee*>&) تُرجع الأسماء مرتبة حسب الراتب تنازلياً (والتعادل أبجدياً) مفصولة بفواصل، وtotalPayroll تُرجع المجموع.
class Employee {
public:
std::string name;
Employee(std::string n) : name(n) {}
virtual int salary() const = 0;
virtual ~Employee() {}
};
// Engineer, Manager
std::string payroll(const std::vector<Employee*>& staff) {
return "";
}
int totalPayroll(const std::vector<Employee*>& staff) {
return 0;
}حل هذا التحدي يرتبط بفتح دورة «OOP في C++» بحسابك.
ابدأ الحل