ここで、このコードのワーカーの非常に奇妙な階層について質問しないでください。なぜ誰かがこのようなものを欲しがるのかわかりませんが、完全に理解していることを確認するために、多重継承の演習を行うことにしました。これが結果です。
using namespace std;
class Employee
{
protected:
string name;
public:
string getname()
{
return name;
}
void setname(string name2)
{
name = name2;
}
Employee(string name2)
{
name = name2;
}
Employee(){}
};
class Manager : public Employee
{
public:
string getname()
{
return ("Manager" + name);
}
Manager(string name2) : Employee(name2){}
Manager() : Employee(){}
};
class Supervisor : public Manager,public Employee
{
public:
Supervisor(string name2) : Manager(name2) , Employee(name2){}
Supervisor() : Manager() , Employee(){}
string getname()
{
return ("Supervisor" + Employee::getname());
}
};
私がここでやろうとしていることを理解していただければ幸いです。「派生クラス 'Supervisor' と基本クラス 'Employee' の間のあいまいな変換」について何かを得ています。