Advertisement
elizabet

Untitled

Mar 27th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.48 KB | None | 0 0
  1. #include "Car.h"
  2. #include "Wheel.h"
  3. #include <iostream>
  4. using namespace std;
  5.  
  6.  
  7.  
  8. Car::Car(const string& mo, const string& ma, int di, int nrWheels)
  9. {
  10.     if(di>0 && nrWheels>2)
  11.     {
  12.         model = mo;
  13.         for(int i=0;i<nrWheels;i++)
  14.         {
  15.             Wheel *myWheel = new Wheel(di, ma);
  16.             wheels.push_back(myWheel);
  17.         }  
  18.     }
  19.     else return;
  20.        
  21. }
  22.  
  23. void Car::copyCar( Car& otherCar)
  24. {  
  25.      model = otherCar.getModel();
  26.      for(int i=0;i<otherCar.getNrWheels();i++)
  27.         {
  28.            
  29.             wheels[i] = otherCar.getWheel(i);
  30.         }  
  31. }
  32.  
  33. Car::Car(Car& myCar)
  34. {
  35.    model = myCar.getModel();
  36.    for(int i=0;i<myCar.getNrWheels();i++)
  37.         {
  38.            
  39.             wheels[i] = myCar.getWheel(i);
  40.         }  
  41.    
  42. }
  43.  
  44. Car& Car::operator=(Car& myCar)
  45.  {
  46.    if(this == &myCar)
  47.    {
  48.        return *this;
  49.    }
  50.    model = myCar.getModel();
  51.    wheels.clear();  
  52.    for(int i=0;i<myCar.getNrWheels();i++)
  53.         {
  54.             wheels[i] = myCar.getWheel(i);
  55.         }  
  56.     return *this;
  57.    
  58. }
  59.  
  60. Car::~Car(){
  61.    
  62.    int range = getNrWheels();
  63.     for(int i=0;i<range;i++)
  64.     {
  65.         delete wheels[i];
  66.         wheels[i] = NULL;
  67.     }
  68. }
  69.  
  70. bool Car::indexInRange(int index)
  71. {
  72.     int range = getNrWheels();
  73.     for(int i=0;i<range;i++)
  74.     {
  75.         if (i == index)
  76.         return true;
  77.     }
  78.     return 0;    
  79. }
  80.    
  81. void Car::deleteAllWheels()
  82. {
  83.     int range = getNrWheels();
  84.     for(int i=0;i<range;i++)
  85.     {
  86.         delete wheels[i];
  87.     }
  88. }
  89.  
  90. string Car::getModel() const
  91.  {
  92.      
  93.      return model;
  94. }
  95.  
  96. void Car::setLicensePlate(const string& license)
  97. {  
  98.      string plate = getLicensePlate();
  99.      plate = license;
  100.      
  101. }
  102.  
  103. string Car::getLicensePlate() const
  104. {  
  105.      return licensePlate;
  106. }
  107.  
  108. int Car::getNrWheels() const
  109. {  
  110.      unsigned int nr = sizeof(wheels)/sizeof(Wheel);
  111.      return nr;
  112. }
  113.  
  114. Wheel* Car::getWheel(int index)
  115.  {  
  116.      int range = getNrWheels();
  117.      if(index >=0 && index <range)
  118.      {    
  119.         for(int i=0;i<range;i++)
  120.         {
  121.             return wheels[i];
  122.         }
  123.     }
  124.   return 0;
  125. }
  126.  
  127. void Car::removeWheel(int index)
  128. {  
  129.      int range = getNrWheels();
  130.      if(index <= 0 || index > range)
  131.      {
  132.          cout << "Exception thrown: Illegal index \n" << endl;
  133.      }
  134.      else
  135.      {     
  136.         for(int i=0;i<range;i++)
  137.         {
  138.             if(i == index)
  139.             {
  140.                 delete wheels[i];
  141.                 wheels[i] = NULL;
  142.             }
  143.         }
  144.      }
  145.      
  146. }
  147.  
  148. void Car::addWheel(int diameter, const string& material)
  149. {
  150.    if(diameter < 0)
  151.    {
  152.        cout << "Exception thrown: Diameter < 0 \n"<<endl;
  153.    }
  154.    else
  155.    {
  156.         Wheel *myWheel = new Wheel(diameter, material);
  157.         wheels.push_back(myWheel);
  158.    }
  159.  
  160. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement