Fahrzeuge 2
fahrzeug.h
Go to the documentation of this file.
1 #pragma once
2 #include <string>
3 
4 class Fahrzeug
5 {
6  public:
10  explicit Fahrzeug(int kg);
12  virtual ~Fahrzeug();
16  int Get_kg() const { return _kg; }
17 
18  virtual std::string classname() const {return "Fahrzeug";}
19 
23  virtual float verbrauch() const {return 0;} // virtual ==> abstract virtual
24 
25  protected:
26  private:
27  const int _kg;
28 };
29 
30 //-----------------------------------------------------------------
31 class LKW: public Fahrzeug
32 {
33 public:
38  LKW(int eigengewicht, int ladung);
39  virtual ~LKW() override;
40 
41  int Get_load() const { return _ladung; }
42  std::string classname() const override {return "LKW";}
43 
44 private:
45  int _ladung;
46 };
47 
48 class PKW: public Fahrzeug
49 {
50 public:
55  PKW(int eigengewicht, int passagiere);
56  virtual ~PKW() override;
57 
58  int Get_pass() const { return _passagiere; }
59  std::string classname() const override {return "PKW";}
60 
61 
62 private:
63  int _passagiere;
64 };
65 //-----------------------------------------------------------------
66 
67 class MAN: public LKW
68 {
69 public:
70  MAN(int eigengewicht, int ladung)
71  : LKW(eigengewicht,ladung) { }
72  virtual ~MAN() override;
73 
74  std::string classname() const override {return "MAN";}
75  float verbrauch() const override {return 15.1f + Get_load()*0.3f/1000;}
76 };
77 
78 //-----------------------------------------------------------------
79 class Raba: public LKW
80 {
81 public:
82  Raba(int eigengewicht, int ladung)
83  : LKW(eigengewicht,ladung) { }
84  virtual ~Raba() override;
85 
86  std::string classname() const override {return "Raba";}
87  float verbrauch() const override {return 12.1f + Get_load()*0.4f/1000;}
88 
89 };
90 
91 //-----------------------------------------------------------------
92 class Opel: public PKW
93 {
94 public:
95  explicit Opel(int eigengewicht)
96  : PKW(eigengewicht,4) { }
97  virtual ~Opel() override;
98 
99  std::string classname() const override {return "Opel";}
100  float verbrauch() const override {return 4.5f + Get_pass()*0.2f;}
101 
102 };
103 
104 
105 //-----------------------------------------------------------------
106 class Smart: public PKW
107 {
108 public:
109  explicit Smart(int eigengewicht)
110  : PKW(eigengewicht,2) { }
111  virtual ~Smart() override;
112 
113  std::string classname() const override {return "Smart";}
114  float verbrauch() const override {return 3.1f + Get_pass()*0.4f;}
115 
116 };
117 
118 
119 //-----------------------------------------------------------------
120 
virtual ~Fahrzeug()
Definition: fahrzeug.cpp:9
Fahrzeug(int kg)
Definition: fahrzeug.cpp:3
virtual std::string classname() const
Definition: fahrzeug.h:18
int Get_kg() const
Definition: fahrzeug.h:16
virtual float verbrauch() const
Definition: fahrzeug.h:23
Definition: fahrzeug.h:32
virtual ~LKW() override
Definition: fahrzeug.cpp:21
int Get_load() const
Definition: fahrzeug.h:41
LKW(int eigengewicht, int ladung)
Definition: fahrzeug.cpp:15
std::string classname() const override
Definition: fahrzeug.h:42
Definition: fahrzeug.h:68
std::string classname() const override
Definition: fahrzeug.h:74
float verbrauch() const override
Definition: fahrzeug.h:75
virtual ~MAN() override
Definition: fahrzeug.cpp:26
MAN(int eigengewicht, int ladung)
Definition: fahrzeug.h:70
Definition: fahrzeug.h:93
Opel(int eigengewicht)
Definition: fahrzeug.h:95
float verbrauch() const override
Definition: fahrzeug.h:100
std::string classname() const override
Definition: fahrzeug.h:99
virtual ~Opel() override
Definition: fahrzeug.cpp:48
Definition: fahrzeug.h:49
virtual ~PKW() override
Definition: fahrzeug.cpp:43
PKW(int eigengewicht, int passagiere)
Definition: fahrzeug.cpp:37
std::string classname() const override
Definition: fahrzeug.h:59
int Get_pass() const
Definition: fahrzeug.h:58
Definition: fahrzeug.h:80
Raba(int eigengewicht, int ladung)
Definition: fahrzeug.h:82
float verbrauch() const override
Definition: fahrzeug.h:87
virtual ~Raba() override
Definition: fahrzeug.cpp:31
std::string classname() const override
Definition: fahrzeug.h:86
virtual ~Smart() override
Definition: fahrzeug.cpp:53
std::string classname() const override
Definition: fahrzeug.h:113
float verbrauch() const override
Definition: fahrzeug.h:114
Smart(int eigengewicht)
Definition: fahrzeug.h:109