汽车类(第一次上课)

Car Class (first time with classes)

本文关键字:第一次 汽车类      更新时间:2023-10-16

对于一项作业,我需要使用一个名为 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()
}

这段代码有两个错误

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::加速和car::brake放在同一个文件中。

这段代码大错特错

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

我想你的意思是这个

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

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

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

这是因为您的 accelerate() 和 brake() 函数在函数作用域中定义了速度变量。您可以将代码更改为以下内容:

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

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

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

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

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