0

あるクラスを別のクラスで機能させようとしています。他のクラスのメンバーをデクリメントすることになっています。

私の最初のクラスは

   class Bike
{
   private:
   int miles;
   Speedometer speedom;
   static int fuelCount;

   public:

   Bike();
   Bike(int, Speedometer*);       //Problem occurs here

   ~Bike();

   int getMiles();
   int getFuelCount();

   void incrementMiles();
};

    int Bike::fuelCount = 0;

   Bike::Bike()
   {
miles = 0;
fuelCount++;
   }

   Bike::Bike(int m, Speedometer * spm)  //This is where I am having problems 
   {
     miles = m;
     speedom = &spm;
   }



   Bike::~Bike()
   {
       cout << "The Bike's destructor is running." << endl;
       fuelCount--;
   }

   int Bike::getMiles()
   {
       return miles;
   }

   int Bike::getFuelCount()
   {
            return fuelCount;
   }

   void Bike::incrementMiles()
   {
            miles++;
            if (miles == 999999)
            miles = 0;
   }

最初に含まれるはずの他のクラスは次のとおりです。

   Class Speedometer
   {
     private:
          int fuel;


     public:
           Speedometer();
           Speedometer(int);

           ~Speedometer();

           int getFuel();

           void incrementFuel();
           void decrementFuel();
   };


   Speedometer::Speedometer()
   {
      fuel = 0;
   }

   Speedometer::Speedometer(int f)
   {
     fuel = f;
   }


   int Speedometer::getFuel()
   {
   return fuel;
   }


   void Speedometer::incrementFuel()
   {
      if (fuel <= 15)
          fuel++;
   }

   void Speedometer::decrementFuel()
   {
      if (fuel > 0)
      fuel--;
   }

彼らは一緒に働くことになっています。Bike は speedometer オブジェクトを操作できるようになります。速度計の現在の燃料量は、24 マイル走行するごとに 1 ガロンずつ減少します。これは合成ではなく集合関係であるはずです。

その関係を作る方法と、その関係をどのように呼ぶべきかを理解するのを手伝ってください。前もって感謝します。

これが私の主な機能です-私はすべての正しい#includesを持っていますが、ここにリストしていません

   int main(int argc, char *argv[])
   {
     Speedometer a(999970, spd);

   for(int count = 0; count <=24; count++)
       a.decrementMiles();

   while (a.getFuel() > 0)
   {
          a.incrementMiles();

          cout<< "Miles:" << a.getMiles() << endl;
          cout<< "Fuel:" << a.getFuel() << endl;
    }

   return 0;
   }
4

3 に答える 3