Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2016
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.86 KB | None | 0 0
  1. //
  2. // Created by Rebecca Carroll on 10/17/16.
  3. //
  4.  
  5. #include "shapes.h"
  6. #ifndef PROJ4_VEHICLES_H
  7. #define PROJ4_VEHICLES_H
  8.  
  9. enum VehicleType
  10. {
  11. badSn, vehicle, car, truck, van, tanker, flatbed
  12. };
  13. class Vehicle
  14. {
  15. public:
  16. const char* SerialNumber () const; // returns serial number
  17. unsigned int PassengerCapacity () const; // returns passenger capacity
  18. virtual float LoadCapacity () const; // returns 0
  19. virtual const char* ShortName () const; // returns "UNK"
  20. virtual float Toll () const; // returns toll using fee schedule
  21.  
  22. static VehicleType SnDecode (const char* sn);
  23. Vehicle();
  24. Vehicle (const char* sn, unsigned int pc, bool verbose = 0); //parameterized constructor
  25. virtual ~Vehicle (); //destructor
  26. private:
  27. const char * serialNumber_;
  28. unsigned int passengerCapacity_;
  29. Vehicle& operator= (const Vehicle&); //assignment operator prototype
  30. Vehicle (const Vehicle& v); //copy constructor
  31. protected:
  32. bool verbose_; // default value 0 given in constructor prototype
  33. };
  34.  
  35.  
  36.  
  37. //====================================CAR=======================================//
  38. class Car: public Vehicle
  39. {
  40. public:
  41. const char* ShortName() const; // returns "CAR"
  42. Car (); //constructor
  43. Car (char const* sn, unsigned int pc, bool verbose = 0); //parameterized constructor
  44. ~Car (); //destructor
  45. private:
  46. Car& operator= (const Car&); //assignment operator prototype
  47. Car (const Car& v); //copy constructor
  48. };
  49. //====================================TRUCK=======================================//
  50. class Truck: public Vehicle
  51. {
  52. public:
  53. const char* ShortName () const; // returns "TRK"
  54. float Toll () const; // returns toll using fee schedule
  55. const char* DOTLicense () const; // returns the license no
  56. Truck (); //constructor
  57. Truck (char const* sn, unsigned int pc, char const* dot, bool verbose = 0); //parameterized constructor
  58. virtual ~Truck (); //destructor
  59. private:
  60. char* DOTLicense_;
  61. Truck& operator= (const Truck&); //assignment operator prototype
  62. Truck (const Truck& v); //copy constructor
  63. };
  64. //====================================VAN=======================================//
  65. class Van: public Truck, public Box
  66. {
  67. public:
  68. float LoadCapacity () const; // returns volume of box
  69. const char* ShortName () const; // returns "VAN"
  70. Van (); //constructor
  71. Van(char const* sn, unsigned int pc, char const* dot, float l, float w, float h, bool v = 0); //parameterized constructor
  72. virtual ~Van (); //destructor
  73. private:
  74. Van& operator= (const Van&); //assignment operator prototype
  75. Van (const Van& v); //copy constructor
  76. };
  77.  
  78. //====================================TANKER=======================================//
  79. class Tanker: public Truck, public Cylinder
  80. {
  81. public:
  82. Tanker (); //constructor
  83. Tanker (char const* sn, unsigned int pc, char const* dot, float l, float r, bool v = 0); //parameterized constructor
  84. virtual ~Tanker (); //destructor
  85. float LoadCapacity () const; // returns volume of cylinder
  86. const char* ShortName () const; // returns "TNK"
  87. private:
  88. Tanker& operator= (const Tanker&);//assignment operator prototype
  89. Tanker (const Tanker& v); //copy constructor
  90. };
  91. //====================================FLATBED=======================================//
  92. class Flatbed: public Truck, public Plane
  93. {
  94. public:
  95. Flatbed (); //constructor
  96. Flatbed (char const* sn, unsigned int pc, char const* dot, float l, float w, bool verbose = false); //parameterized constructor
  97. virtual ~Flatbed (); //destructor
  98. float LoadCapacity () const; // returns area of plane
  99. const char* ShortName () const; // returns "FLT"
  100. private:
  101. Flatbed& operator= (const Flatbed&); //assignment operator prototype
  102. Flatbed (const Flatbed& v); //copy constructor
  103. };
  104. #endif //PROJ4_VEHICLES_H
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement