Kodax

نظام رواتب بالتجريد — تحدي 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++» بحسابك.

ابدأ الحل