如何使用字符串和整数获取汽车类的整数结果

How to get an integer result for Car Class with strings and integers

本文关键字:整数 汽车类 结果 获取 字符串 何使用      更新时间:2023-10-16

我正在编写一个程序来执行以下操作:

  • 构造函数接受汽车的年份并作为参数,并将这些值分配给对象的年份并创建成员变量。构造函数还将速度成员变量初始化为 0。

  • 还创建了适当的访问器函数,以允许从对象的年份、make 和 speed 成员变量中检索值。

  • 每次调用加速函数时,都会向速度成员变量添加 5。 

  • 每次调用制动函数时,都会从速度成员变量中减去 5。

这就是我目前所拥有的,但我无法返回正确的速度。有什么解决方案吗?

#include <iostream>
#include <string>
using namespace std;
class Car
{
    private:
    int yearModel;
    string make;
    int speed;
    public:
    Car(int, string, int);
    int getSpeed();
    int getModel();
    void accelerate();
    void brake();

};
int Car::getSpeed()
{
    return speed;
}
Car::Car(int yearModel, string make, int speed = 0)
{
}
void Car::accelerate()
{
    speed += 5;
}
void Car::brake()
{
    if (speed > 5)
        speed -= 5;
    else speed = 0;
}

int main()
{
    int yearModel;
    string make;
    cout << "Enter year and make ";
    cin >> yearModel >> make;
    Car myCar(yearModel, make);
    for (int i = 0; i < 5; i++)
    {
        myCar.accelerate();
        cout << "The speed of the car is: " << myCar.getSpeed() << endl;
        for (int j = 0; j < 5; j++)
        {
            myCar.brake();
            cout << "The speed of the car is " << myCar.getSpeed() << endl;
            system("PAUSE");
            return (0);
        }
    }
}
Car::Car(int yearModel, string make, int speed = 0)
{
}

你有一个空的构造函数体,它什么都不做。因此,在构造对象后,其数据成员将:

int yearModel;     // Have Undefined value
string make;       // Have Default initialized value
int speed;         // Have Undefined value

您应该在构造函数初始值设定项列表中初始化它们:

Car::Car(int YearModel, string Make, int Speed = 0)
   : yearModel(YearModel), make(Make), speed(Speed)
{
}