基本上,我有3个功能 第一和第二功能是检查点火是真还是假。 第三个功能主要是检查点火是否打开,速度不能大于65,如果速度大于65,它将"修复"那速度是65。 然而,如果点火开关关闭,速度将为0。
然而, 在我的代码中,我做了一个if else语句。 当我打印点火关闭的部分时, 我得到的值是65.它假设是0。
我可以知道我的代码有什么问题吗?
car.h
#ifndef car_inc_h
#define car_inc_h
#include <iostream>
#include <string>
using namespace std;
class Car {
bool isIgnitionOn;
int speed;
public:
void turnIgnitionOn();
void turnIgnitionOff();
void setSpeed(int);
void showCar();
};
#endif
car.cpp
#include <iostream>
#include <string>
#include "Car.h"
using namespace std;
void Car::turnIgnitionOn() {
this->isIgnitionOn = true;
}
void Car::turnIgnitionOff() {
this->isIgnitionOn = false;
};
void Car::setSpeed(int speed) {
if (isIgnitionOn == true) {
if (speed >= 65) {
this->speed = 65;
}
else {
this->speed = speed;
}
}
else if (isIgnitionOn == false){
this->speed = 0;
}
};
void Car::showCar() {
if (isIgnitionOn == true) {
cout << "Ignition is on." << endl;
cout << "Speed is " << speed << endl;
}
else if (isIgnitionOn == false) {
cout << "Ignition is off" << endl;
cout << "Speed is " << speed << endl;
}
};
的main.cpp
#include <iostream>
#include <string>
#include "Car.h"
using namespace std;
int main() {
Car myCar;
myCar.turnIgnitionOn();
myCar.setSpeed(35);
myCar.showCar();
myCar.setSpeed(70);
myCar.showCar();
myCar.turnIgnitionOff();
myCar.showCar();
return 0;
}
答案 0 :(得分:3)
speed
永远不会重置为0.您可以在this->speed=0
中添加turnIgnitionOff
,这更符合逻辑。