class Car
{
protected:
bool isIgnitionOn;
int speed;
public:
void turnIgnitionOn();
void turnIgnitionOff();
void setSpeed(int);
void showCar();
};
void Car::showCar()
{
if(isIgnitionOn)
cout << " ignition is on" ;
else
cout << " ignition is off" ;
cout << "Speed is " << speed << endl;
}
void Car::turnIgnitionOn()
{
isIgnitionOn = true;
}
void Car::turnIgnitionOff()
{
speed = 0;
isIgnitionOn = false;
}
class RaceCar: public Car
{
public:
void setSpeed(int mph);
};
void RaceCar::setSpeed(int mph)
{
const int MAX_SPEED = 200;
if(isIgnitionOn)
if(mph<= MAX_SPEED)
speed = mph;
else
speed = MAX_SPEED;
else
cout << " cant set speed - ignition is off!" << endl;
}
int main()
{
Car myCar;
RaceCar aRaceCar;
myCar.turnIgnitionOn();
myCar.setSpeed(80);
cout << " car at 80 mph: " ;
myCar.showCar();
aRaceCar.turnIgnitionOn();
aRaceCar.setSpeed(80);
cout << " race car at 80 mph: ";
aRaceCar.showCar();
return 0;
}
答案 0 :(得分:0)
尝试将Car类中的setSpeed(int)函数设为虚拟函数。这将允许您覆盖RaceCar类中的函数。