Fahrzeuge 3: raw pointer
Loading...
Searching...
No Matches
fahrzeug.h
Go to the documentation of this file.
1#pragma once
2#include <string>
3
5{
6public:
10 explicit Fahrzeug(int kg);
11
13 virtual ~Fahrzeug();
14
18 int Get_kg() const
19 {
20 return _kg;
21 }
22
26 virtual std::string classname() const
27 {
28 return "Fahrzeug";
29 }
30
34 virtual float verbrauch() const = 0; // besser: pure virtual ==> abstract class
35
36private:
37 const int _kg;
38};
39
40//-----------------------------------------------------------------
41class LKW: public Fahrzeug
42{
43public:
48 LKW(int eigengewicht, int ladung);
49 ~LKW() override;
50
54 int Get_load() const
55 {
56 return _ladung;
57 }
58
62 std::string classname() const override
63 {
64 return "LKW";
65 }
66
67private:
68 int _ladung;
69};
70
71class PKW: public Fahrzeug
72{
73public:
78 PKW(int eigengewicht, int passagiere);
79 ~PKW() override;
80
84 int Get_pass() const
85 {
86 return _passagiere;
87 }
88
92 std::string classname() const override
93 {
94 return "PKW";
95 }
96
97
98private:
99 int _passagiere;
100};
101//-----------------------------------------------------------------
102
103class MAN: public LKW
104{
105public:
106 MAN(int eigengewicht, int ladung)
107 : LKW(eigengewicht,ladung) { }
108 ~MAN() override;
109
113 std::string classname() const override
114 {
115 return "MAN";
116 }
117
121 float verbrauch() const override
122 {
123 return 15.1f + Get_load()*0.3f/1000;
124 }
125};
126
127//-----------------------------------------------------------------
128class Raba: public LKW
129{
130public:
131 Raba(int eigengewicht, int ladung)
132 : LKW(eigengewicht,ladung) { }
133 ~Raba() override;
134
138 std::string classname() const override
139 {
140 return "Raba";
141 }
142
146 float verbrauch() const override
147 {
148 return 12.1f + Get_load()*0.4f/1000;
149 }
150
151};
152
153//-----------------------------------------------------------------
154class Opel: public PKW
155{
156public:
157 explicit Opel(int eigengewicht)
158 : PKW(eigengewicht,4) { }
159 ~Opel() override;
160
164 std::string classname() const override
165 {
166 return "Opel";
167 }
168
172 float verbrauch() const override
173 {
174 return 4.5f + Get_pass()*0.2f;
175 }
176
177};
178
179//-----------------------------------------------------------------
180class Smart: public PKW
181{
182public:
183 explicit Smart(int eigengewicht)
184 : PKW(eigengewicht,2) { }
185 ~Smart() override;
186
190 std::string classname() const override
191 {
192 return "Smart";
193 }
194
198 float verbrauch() const override
199 {
200 return 3.1f + Get_pass()*0.4f;
201 }
202
203};
204//-----------------------------------------------------------------
205
virtual ~Fahrzeug()
Definition fahrzeug.cpp:9
virtual float verbrauch() const =0
virtual std::string classname() const
Class name.
Definition fahrzeug.h:26
int Get_kg() const
Definition fahrzeug.h:18
Definition fahrzeug.h:42
~LKW() override
Definition fahrzeug.cpp:21
int Get_load() const
Load weight.
Definition fahrzeug.h:54
std::string classname() const override
Class name.
Definition fahrzeug.h:62
std::string classname() const override
Class name.
Definition fahrzeug.h:113
float verbrauch() const override
fuel consumption
Definition fahrzeug.h:121
~MAN() override
Definition fahrzeug.cpp:39
MAN(int eigengewicht, int ladung)
Definition fahrzeug.h:106
Opel(int eigengewicht)
Definition fahrzeug.h:157
float verbrauch() const override
fuel consumption
Definition fahrzeug.h:172
std::string classname() const override
Class name.
Definition fahrzeug.h:164
~Opel() override
Definition fahrzeug.cpp:43
Definition fahrzeug.h:72
~PKW() override
Definition fahrzeug.cpp:33
std::string classname() const override
Class name.
Definition fahrzeug.h:92
int Get_pass() const
Number of passengers.
Definition fahrzeug.h:84
Raba(int eigengewicht, int ladung)
Definition fahrzeug.h:131
float verbrauch() const override
fuel consumption
Definition fahrzeug.h:146
~Raba() override
Definition fahrzeug.cpp:41
std::string classname() const override
Class name.
Definition fahrzeug.h:138
~Smart() override
Definition fahrzeug.cpp:45
std::string classname() const override
Class name.
Definition fahrzeug.h:190
float verbrauch() const override
fuel consumption
Definition fahrzeug.h:198
Smart(int eigengewicht)
Definition fahrzeug.h:183