gpt4 book ai didi

c++ - 基类集合泛型类型的通信

转载 作者:太空宇宙 更新时间:2023-11-04 14:09:12 24 4
gpt4 key购买 nike

请帮我解决以下C++设计问题

Class Office 
{
std::list<Employees *> m_Employees;
string m_Address;

void AddEmployee(Employees *employee);
string GetAddress();
}
Class SalesOffice : public Office
{
int m_TotalEmployees_SalesPerYear;
int GetSalesPerYear();
}
Class FinanceOffice : public Office
{
int m_TotalEmployees_ProfitPerYear;
int GetProfitPerYear();
}
Class BookKeepingOffice : public Office
{
int m_TotalEmployees_RecordsPerYear;
int GetRecordsPerYear();
}


Class Employees
{
int id;
int GetID();
}
Class SalesEmployees : public Employees
{
int m_SalesPerYear;
int GetEmployeeSalesPerYear();
}
Class FinanceEmployees : public Employees
{
int m_ProfitPerYear;
int GetEmployeeProfitPerYear();
}
Class BookKeepingEmployees : public Employees
{
int m_RecordsPerYear;
int GetEmployeeRecordsPerYear();
}

类(class)办公室有一份类(class)员工名单。这种复合关系无法更改。显然,Any type of Office 只知道 Employees。问题:SalesOffice 的 GetSalesPerYear 如何访问 GetEmployeeSalesPerYear()注意:我不想对每个办公室的员工进行类型转换。对设计和设计模式有什么建议吗?

最佳答案

int GetEmployeeSalesPerYear(); 应该被定义为 Employee 的虚方法,返回 0 并且 SalesEmployees 应该重新实现它。

关于c++ - 基类集合泛型类型的通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15572591/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com