Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何建立继承依赖关系_C++ - Fatal编程技术网

C++ 如何建立继承依赖关系

C++ 如何建立继承依赖关系,c++,C++,我正在做这个练习: 有不同类型的员工:普通员工 工人、监事、董事会成员是特定类型的 主管 跟踪常规辅助对象类型的对象数 每个员工都有自己的姓名,可以自我介绍 每个employee对象都有自己分配给他的工作人员id 当它被创建时 工资的具体计算方式取决于员工的类型 雇员 每个员工都可以有自己的直接主管,可以是任何人 主管(例如,这意味着董事会成员可以是 正式工人的主管) 现在,我已经阐述了所有要点,排除最后一点: class Employees { public: static int

我正在做这个练习:

有不同类型的员工:普通员工 工人、监事、董事会成员是特定类型的 主管

跟踪常规辅助对象类型的对象数

每个员工都有自己的姓名,可以自我介绍

每个employee对象都有自己分配给他的工作人员id 当它被创建时

工资的具体计算方式取决于员工的类型 雇员

每个员工都可以有自己的直接主管,可以是任何人 主管(例如,这意味着董事会成员可以是 正式工人的主管)

现在,我已经阐述了所有要点,排除最后一点:

class Employees
{
public:
    static int  workerid;
    int salary;


    Employees(){
        workerid += 1;
    }
    void introduce(){
        cout << "the name is:" << name << "and surname" << surname << endl;

    }


};

int Employees::workerid = 0;

class Supervisors :public Employees{
public:

    Supervisors(){
        salary = 1000;
    }


};
class BoardMembers : public Supervisors{
public:
    BoardMembers(){
        salary = 1200;
    }


};
class RegularWorkers :public Employees{
public:
    static int number;
    Supervisors *supervisor;
    RegularWorkers(Supervisors supervisor){
        this->supervisor = &supervisor;
        number += 1;
        salary = 600;
    }


};
int RegularWorkers::number = 0;
类员工
{
公众:
静态int-workerid;
国际工资;
雇员(){
workerid+=1;
}
无效引入(){

无法通过添加主管来修改employee类

Supervisor *supervisor;
然后重载Employee构造函数以接受类型
Supervisor
,并将它们设置为彼此相等

Employees(Supervisor *s){
    supervisor = s;
    workerid += 1;
}
然后,您可以使用访问主管的ID

supervisor->ID
此外,您可能希望将
name
names
作为成员变量,并在构造函数中初始化这些变量。若要添加到以前的构造函数中,可能如下所示

Employees(Supervisor *s, string sName, string sSurname){
    name = sName;
    surname = sSurname;
    supervisor = s;
    workerid += 1;
}

您可以使用
supervisor*supervisor;
,而不是
int-idofsupervisor;
。无论何时需要supervisor的id,只需使用
supervisor->id
。现在添加此
supervisor
对象作为
类RegularWorkers
的构造函数参数,它应该输出名称,而不是更改名称。(你知道向某人“自我介绍”意味着什么吗?)最后一点说的是每个员工,而不是每个普通员工。“任何主管”规范建议你使用
主管
类来指明谁是主管,而不是id。(我怀疑你最近才提到过指针。)您好,谢谢您的回复,我将metod Introduct更改为saw名称和姓氏,但我有一个问题,如何在不更改order类的情况下在Employees构造函数中引入名称和姓氏。@molbdniloi我意识到主管的更改,但我不知道您的意思是否是@MohitJainHi,我知道您是新加入SO的。我如果您觉得某个答案解决了问题,请单击绿色复选标记将其标记为“已接受”。确保您所有已回答的问题的答案都已接受。这有助于将注意力集中在仍然没有答案的较年长的SO上。因此,请将他的答案标记为“答案”,并给他投弃权票。