汽车类(第一次上课)

时间:2013-11-13 15:47:46

标签: c++ function class header

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

CarClass.cpp

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

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

3 个答案:

答案 0 :(得分: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 :: accele和car :: brake。

在同一个文件中

此代码非常错误

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

我认为你的意思是

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

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

如果您的老师无法帮助您,那么您可能应该阅读一本关于C ++的书。编程是非常不可原谅的,如果你没有完全 ,它通常完全错误。你不能虚张声势,你必须从某个地方获得一些可靠的知识。

答案 1 :(得分:1)

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

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



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

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

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

还要确保有半冒号“;”在函数原型和函数调用结束时,它将能够编译。

答案 2 :(得分:-1)

所以,首先,在你的主要方法中你需要一个你的类的实例(Car car = new Car(2013,“Kia”)),并且在你的方法中,你使用的是局部变量,因为你是再次宣布速度。