我是c++的新手,正在尝试创建一个汽车类程序,该程序要求用户使用一年的汽车。然后程序以速度开始,该速度始终从0开始,以5mph的速度加速5次,以5mph的速度制动5次。我必须使用头文件和2个cpp文件创建程序。速度的返回值不正确,显示为:
输入汽车的年份:2000
输入汽车的品牌:雪佛兰
起始速度为-858993460
当前速度为:-858993455 mph。
当前速度为:-858993450 mph。
当前速度为:-858993445 mph。
当前速度为:-858993440 mph。
当前速度为:-858993435 mph。
当前速度为:-858993440 mph。
当前速度为:-858993445 mph。
当前速度为:-858993450 mph。
当前速度为:-858993455 mph。
当前速度为:-858993460 mph。
按任意键继续 。 。 。
谁能帮助我找出我做错了什么?我已经附上了到目前为止的内容。任何帮助是极大的赞赏。谢谢
#define CAR_H
#include <string>
using namespace std;
class Car
{
private:
int yearModel;
string make;
int speed;
public:
Car(int, string);
void accelerate();
void brake();
int getSpeed ();
};
#include <iostream>
#include "Car.h"
using namespace std;
Car::Car(int carYearModel, string carMake)
{
int yearModel = carYearModel;
string make = carMake;
int speed = 0;
}
void Car::accelerate()
{
speed += 5;
}
void Car::brake()
{
speed -= 5;
}
int Car::getSpeed()
{
return speed;
}
int getYear(int year)
{
return year;
}
string getMake(string make)
{
return make;
}
#include "Car.h"
#include <iostream>
#include <sstream>
#include <iomanip>
using namespace std;
int main()
{
int count;
int yr;
string mk;
int getSpeed;
cout << "Enter the year of the car: ";
cin >> yr;
cout << "Enter the make of the car: ";
cin >> mk;
Car myCar(yr, mk);
cout << "The starting speed is "
<< myCar.getSpeed() << endl << endl;
for ( count = 0; count < 5; count++)
{
myCar.accelerate();
cout << "The current speed is: " << myCar.getSpeed()
<< " mph." << endl;
}
for ( count = 0; count < 5; count++)
{
myCar.brake();
cout << "The current speed is: " << myCar.getSpeed()
<< " mph." << endl;
}
system ("pause");
return 0;
}
最佳答案
在此代码中:
Car::Car(int carYearModel, string carMake)
{
int yearModel = carYearModel;
string make = carMake;
int speed = 0;
}
您没有分配给
Car
对象的数据成员。相反,您要声明与字段名称相同的局部变量,然后分配给这些局部变量。要解决此问题,请删除以下类型:
Car::Car(int carYearModel, string carMake)
{
yearModel = carYearModel;
make = carMake;
speed = 0;
}
希望这可以帮助!
关于c++ - C++返回值显示-858993460,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23301918/