0

对于一个作业,我需要使用一个名为 car 的类并让它显示品牌和型号,并且当你使用加速时速度增加 5,当你刹车时速度减少 5。我的老师一路帮助我,但当我走到尽头时,我无法让它运行。有人可以纠正我并告诉我为什么错了吗?

小鬼---------

#include <iostream>
#include <string>
using namespace std;

void accelerate()
{ 
    int speed;
    speed = speed + 5;
}

void brake()
{
    int speed;
    speed = speed - 5;
}

标题

#include <iostream>
#include <string>
using namespace std;

class car
{
public:
    car(int getYear, string getMake);
    void accelerate();
    void brake();

private:
    int year;
    string make;
    int speed;
};

汽车类.cpp

#include <string>
#include "CarClass.h"
using namespace std;

int main()
{
    car.(2013,"Kia")
    car.accelerate()
    car.brake()
}
4

3 回答 3

3

这段代码有两个错误

void accelerate()
{ int speed;


    speed = speed + 5;

}

它应该是

void car::accelerate()
{
    speed = speed + 5;
}

刹车也有同样的问题。您使用该car::符号表示这些函数是类的方法car

您错过了用于创建car对象的构造函数定义。

car::car(int getYear, string getMake)
{
    year = getYear;
    make = getMake;
    speed = 0;
}

这应该与 car::accelerate 和 car::brake 放在同一个文件中。

这段代码非常错误

car.(2013,"Kia")
car.accelerate()
car.brake()

我想你是这个意思

car mycar(2013,"Kia");
mycar.accelerate();
mycar.brake();

现在代码将构建并运行,但它仍然不会做任何事情。我不确定你期望它做什么,所以我真的无能为力。

如果你的老师不能帮助你,那么也许你应该读一本关于 C++ 的书。编程是非常无情的,如果你没有完全正确地理解它通常是完全错误的。你不能在这方面虚张声势,你必须从某个地方获得一些扎实的知识。

于 2013-11-13T15:52:25.703 回答
1

这是因为您的加速()和刹车()函数在函数范围内定义了一个速度变量。您可以将代码更改为:

void car::accelerate()
{ 
    speed += 5;
}



void car::brake()
{  
    speed -= 5;
}

为了使用该类,您需要像这样声明它:

Car car = new Car(2013,"Kia");

还要确保有分号“;” 在函数原型和函数调用的末尾,以便能够编译。

于 2013-11-13T15:52:52.520 回答
-1

因此,首先,在您的主要方法中,您需要一个类的实例(Car car = new Car(2013,"Kia")),在您的方法中,您使用的是局部变量,因为您再次声明速度.

于 2013-11-13T15:53:28.363 回答