我有一個包含一個醫生級別的程序,以及每名醫生對象有「病人」的鏈接列表。這些患者是使用以下代碼行創建的C++刪除指針
Patient * patient = new Patient(string firstname, string ailment);
然後將此患者添加到醫生的鏈接列表中。 Doctor類中有一個指針,用於指向並遍歷列表並獲取每個患者。當我想要刪除這些患者時,我必須從列表的開始處開始並遍歷每個患者。我的問題是,我是否可以通過在遍歷它們時簡單地調用它們的析構函數來刪除eacg患者?
Patient::~Patient(){
}
還是我需要實際調用指針刪除指針,因爲它指向每個員工?
你的意思是,'病人*病人=新病人(串名字,串疾病);'? –
@slugonamission:你可以直接調用析構函數。 –
這取決於你的鏈表是如何實現的。如果每個Patient類存儲一個指向下一個Patient的指針,那麼在對每個Patient調用delete之前,您需要獲取指向下一個的指針 – oggmonster