注意:這是家庭作業!C++與派生類成員級聯
我正在研究一個大型項目,其中我有3個(我們將關注)類,基類Student和2個派生類Grad和Undergrad,現在我永遠不會明確地使用學生類,但不幸的是創建一個包含畢業生和本科生類型轉換爲學生的鏈接列表,我的問題是如何實現級聯我的派生類,即
在我的基類我有一個小函數,在室內用本科生
基類的全覆蓋實施:
virtual UnderGrad& setMajor(std::string) {}
本科:
//purpose: sets the major
UnderGrad& UnderGrad::setMajor(std::string maj)
{
major = maj;
return *this;
}
即時知道如果這是正確的或者什麼的正確實施的功能的,所以我可以使用級聯像即
curStudent.setStudentNum().setMajor()......
是林做正確嗎?如果是的話,我的基類應該返回什麼?即
return *(new Undergrad(....));
編輯 回答一些問題 我只需要有保存2班畢業,本科都派生形式的學生,爲了這些列表進行排序,除其他事項外鏈表我需要訪問派生類(唯一變量),但是我把它們轉換爲學生(根據作業需要),所以爲了訪問任何類特定的數據,我需要一些虛擬方法來編寫訪問它(是的,在我看來,它似乎沒用,我可以在一個班級學生中做所有事情,我可以在這三個班但是我不能有一班)所以如果我編寫虛擬方法專門用於派生類訪問變量然後,Undergrad的構造函數確實設置了主要功能,但是如果我想要編輯任何數據,看起來多餘的是讓所有的舊數據刪除舊的節點,然後創建一個新的節點舊的數據,並在下面那裏正是我需要的,我認爲
如果你想讓這兩個畢業生和本科生工作,你必須返回一個'學生&'。如果它只適用於一個,那麼在該類中執行,而不是基類。 – chris
好的,這就是我開始思考如何我可以返回對基類的引用,如果即時通訊返回一個基類的引用將我的派生函數被調用或我的基地 –
'return * this;'將做到這一點。 – chris