假设我有这样一段代码: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