假設我有這樣一段代碼:C++抽象類的繼承
class Vehicle {
virtual const char* media() const = 0;
virtual unsigned speed() const = 0;
} V, *PV;
class LandVehicle : public Vehicle {
const char* media() const override{ return "Land";}
} L, *PL;
class Train : public LandVehicle{
virtual unsigned speed() const override {return 130;}
} T, *PT;
我有一個關於它的幾個問題:d
1)LandVehicle不執行速度()。是一個錯誤,如果是的話,什麼樣的錯誤?還是隻是讓它成爲一個抽象類?
2)是關鍵字覆蓋在類LandVehicle方法media()中使用是否正確?作爲一個抽象類的派生類是否真的覆蓋了該方法?
3)與2相同覆蓋列車的速度()方法。
4)現在正在培訓具體的課程嗎?
5)是否需要在LandVehicle的media()方法的聲明中添加關鍵字virtual?
6)如果我在火車類中添加這個方法:
const char* media() const{ return "Just a train";}
它隱藏LandVehicle的媒體()或它覆蓋它?
7)在6中加入方法後,LandVehicle的媒體()可以在Train類中訪問嗎?
有太多的問題,其中大部分你可以自己測試它快速找到答案。 – Aracthor
你有沒有試過自己研究過?你發現了什麼以及它沒有回答你的問題? – Angew
我同意這裏。快速編寫代碼/測試輸出通常比在stackoverflow上輸入代碼/問題要快。 – Hayt