对于作业,我需要使用一个名为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()
}
答案 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”)),并且在你的方法中,你使用的是局部变量,因为你是再次宣布速度。