我有一個程序,我正在處理這個問題,它要求我們重載Employee類的>>,以便在使用它時讀入正確類型的員工,所以我有這樣的東西在我的主要程序:覆蓋派生類的>>運算符
Employee *emp;
empIn >> emp;
我想通了基類是在那裏我會想這樣做,因爲它是適用於所有的派生類中唯一的一個。該類型是通過在該行開始的整數確定的,所以我想這樣的事情可能工作(因爲我不知道是什麼類型,直到我讀它):
istream &operator >> (istream &stream, Employee &emp)
{
int type;
stream >> type;
switch(type){
case 1:
*emp = new Hourly;
break;
...
}
return stream;
}
但是,這不工作。我是以正確的方式去做這件事?如果沒有,請指出我的方向。
當你說「它沒有?」時,你是什麼意思? – Maxpm
這應該是'Employee *&emp' –
它不起作用,它不會編譯 –