Fahrzeuge 3
fahrzeug.h
Go to the documentation of this file.
1 #ifndef FAHRZEUG_H
2 #define FAHRZEUG_H
3 #include <string>
4 
5 
6 class Fahrzeug
7 {
8 public:
12  explicit Fahrzeug(int kg);
13 
15  virtual ~Fahrzeug();
16 
20  int Get_kg() const
21  {
22  return _kg;
23  }
24 
28  virtual std::string classname() const
29  {
30  return "Fahrzeug";
31  }
32 
36  virtual float verbrauch() const = 0; // besser: pure virtual ==> abstract class
37 
38 private:
39  const int _kg;
40 };
41 
42 //-----------------------------------------------------------------
43 class LKW: public Fahrzeug
44 {
45 public:
50  LKW(int eigengewicht, int ladung);
51  ~LKW() override;
52 
56  int Get_load() const
57  {
58  return _ladung;
59  }
60 
64  std::string classname() const override
65  {
66  return "LKW";
67  }
68 
69 private:
70  int _ladung;
71 };
72 
73 class PKW: public Fahrzeug
74 {
75 public:
80  PKW(int eigengewicht, int passagiere);
81  ~PKW() override;
82 
86  int Get_pass() const
87  {
88  return _passagiere;
89  }
90 
94  std::string classname() const override
95  {
96  return "PKW";
97  }
98 
99 
100 private:
101  int _passagiere;
102 };
103 //-----------------------------------------------------------------
104 
105 class MAN: public LKW
106 {
107 public:
108  MAN(int eigengewicht, int ladung)
109  : LKW(eigengewicht,ladung) { }
110  ~MAN() override;
111 
115  std::string classname() const override
116  {
117  return "MAN";
118  }
119 
123  float verbrauch() const override
124  {
125  return 15.1f + Get_load()*0.3f/1000;
126  }
127 };
128 
129 //-----------------------------------------------------------------
130 class Raba: public LKW
131 {
132 public:
133  Raba(int eigengewicht, int ladung)
134  : LKW(eigengewicht,ladung) { }
135  ~Raba() override;
136 
140  std::string classname() const override
141  {
142  return "Raba";
143  }
144 
148  float verbrauch() const override
149  {
150  return 12.1f + Get_load()*0.4f/1000;
151  }
152 
153 };
154 
155 //-----------------------------------------------------------------
156 class Opel: public PKW
157 {
158 public:
159  explicit Opel(int eigengewicht)
160  : PKW(eigengewicht,4) { }
161  ~Opel() override;
162 
166  std::string classname() const override
167  {
168  return "Opel";
169  }
170 
174  float verbrauch() const override
175  {
176  return 4.5f + Get_pass()*0.2f;
177  }
178 
179 };
180 
181 
182 //-----------------------------------------------------------------
183 class Smart: public PKW
184 {
185 public:
186  explicit Smart(int eigengewicht)
187  : PKW(eigengewicht,2) { }
188  ~Smart() override;
189 
193  std::string classname() const override
194  {
195  return "Smart";
196  }
197 
201  float verbrauch() const override
202  {
203  return 3.1f + Get_pass()*0.4f;
204  }
205 
206 };
207 
208 
209 //-----------------------------------------------------------------
210 
211 
212 
213 
214 #endif // FAHRZEUG_H
virtual float verbrauch() const =0
std::string classname() const override
Class name.
Definition: fahrzeug.h:64
std::string classname() const override
Class name.
Definition: fahrzeug.h:193
Definition: fahrzeug.h:43
Definition: fahrzeug.h:130
std::string classname() const override
Class name.
Definition: fahrzeug.h:94
float verbrauch() const override
fuel consumption
Definition: fahrzeug.h:174
float verbrauch() const override
fuel consumption
Definition: fahrzeug.h:201
Opel(int eigengewicht)
Definition: fahrzeug.h:159
std::string classname() const override
Class name.
Definition: fahrzeug.h:140
Fahrzeug(int kg)
Definition: fahrzeug.cpp:3
Smart(int eigengewicht)
Definition: fahrzeug.h:186
MAN(int eigengewicht, int ladung)
Definition: fahrzeug.h:108
std::string classname() const override
Class name.
Definition: fahrzeug.h:115
Definition: fahrzeug.h:73
std::string classname() const override
Class name.
Definition: fahrzeug.h:166
Definition: fahrzeug.h:105
virtual std::string classname() const
Class name.
Definition: fahrzeug.h:28
Raba(int eigengewicht, int ladung)
Definition: fahrzeug.h:133
Definition: fahrzeug.h:156
int Get_pass() const
Number of passengers.
Definition: fahrzeug.h:86
float verbrauch() const override
fuel consumption
Definition: fahrzeug.h:148
int Get_load() const
Load weight.
Definition: fahrzeug.h:56
int Get_kg() const
Definition: fahrzeug.h:20
virtual ~Fahrzeug()
Definition: fahrzeug.cpp:9
float verbrauch() const override
fuel consumption
Definition: fahrzeug.h:123