C ++汽车仪表模拟器。我一直收到这些错误消息

时间:2014-05-25 02:32:36

标签: c++

我不断遇到以下编程挑战的错误,非常感谢任何帮助。谢谢。(错误发生在本文末尾)

汽车仪表模拟器:

对于这项任务,您将设计一组一起工作的类,以模拟汽车的电量计和里程表。您将设计的课程是:

  • FuelGauge类:此类将模拟燃油表。其职责是:

- 了解汽车目前的燃油量,单位为加仑。

- 以加仑为单位报告汽车当前的燃油量。

- 能够将燃油量增加1加仑。这模拟了将燃料放入汽车中。 (汽车最多可容纳15加仑。)

- 如果燃油量大于0加仑,则能够减少1加仑的燃油量。这模拟了汽车行驶时燃烧的燃料。

  • 里程表类:这个类将模拟汽车的里程表。其职责是:

- 了解汽车目前的里程数。

- 报告汽车目前的里程数。

- 能够将当前里程增加1英里。里程表可存储的最大里程为999,999英里。当超过此数量时,里程表会将当前里程重置为0。

- 能够使用FuelGauge对象。每24英里行驶时,它应该将FuelGauge物体的当前燃料量减少1加仑。 (汽车的燃油经济性是每加仑24英里。)

通过创建每个类的实例来演示类。用燃料模拟汽车,然后运行一个增加里程表的循环,直到汽车燃料耗尽。在每次循环迭代期间,打印汽车当前的里程数和燃油量。

到目前为止,这是我的代码:

里程表类:

//Odometer.h:
#pragma once
#include
#include
#include
#include "FuelGauge.h"
class Odometer
{
 private:
  int currentMileage;
  FuelGauge *fuelG;
 public:
  Odometer(int miles,FuelGauge *f)
  {
   currentMileage = miles;
   fuelG= f;
  }
 int getCurrentMileage()
 {
  return currentMileage;
 }

 void incrementcurrentMileage()
 {
  if(currentMileage < 999999 )
   currentMileage++;
  else 
   currentMileage = 0;
 }

 void decrementcurrentMileage()
 {
  if (currentMileage > 24 )
   currentMileage--;
   (*fuelG).decrementFuelTank();
 }
};

Odometer.cpp:

//Odometer.cpp:
#include "odometer.h"
Odometer::Odometer()
{
 //ctor
}
Odometer::~Odometer()
{
 //dtor
}

FuelGauge课程:

//FuelGauge.h:
#pragma once
#include
#include
#include
using namespace std;
class FuelGauge
{
 private:
  int currentAmountOfFuel;
 public:
  FuelGauge(int gallons)
  {
   currentAmountOfFuel=gallons;
  }
//FuelGauge();
 int getCurrentAmountOfFuel()
 {
  return currentAmountOfFuel;
 }

 void incrementFuelTank()
 {
  if (currentAmountOfFuel< 15 )
   currentAmountOfFuel++;
 }

 void decrementFuelTank()
 {
  if(currentAmountOfFuel>0)
   currentAmountOfFuel--;
 }
};

FuelGauge.cpp:

//FuelGauge.cpp:
#include "fuelgauge.h"
FuelGauge::FuelGauge()
{
//ctor
}
FuelGauge::~FuelGauge()
{
//dtor
}

main.cpp中:

//main.cpp:
#include
#include
#include
#include "FuelGauge.h"
#include "Odometer.h"
using namespace std;
int main()
{
 FuelGauge fuelG(15);
 Odometer odm(0,&fuelG);

 while (fuelG.getCurrentAmountOfFuel() > 0)
 {
  odm.incrementcurrentMileage();
  cout << "Mileage: "<< cout<<"Fuel level"<< fuelG.getCurrentAmountOfFuel()<<" gallons"<
 }
 return 0;
}

我一直收到这些错误:

fuelgauge.cpp error: prototype for 'FuelGauge::FuelGauge()' does not match any in class 'FuelGauge'|
fuelgauge.cpp error: definition of implicitly-declared 'FuelGauge::~FuelGauge()'
fuelgauge.h error: FuelGauge::FuelGauge(int)|
fuelgauge.h error: candidates are: FuelGauge::FuelGauge(const FuelGauge&)|

先谢谢。

1 个答案:

答案 0 :(得分:1)

您有默认构造函数和析构函数的定义,但在类定义中没有它们的原型。使用以下内容修改fuelgauge.h。

class FuelGauge
{
public:
    FuelGauge();
    ~FuelGauge();
    ...
}