-
Notifications
You must be signed in to change notification settings - Fork 0
/
Fahrzeug.h
51 lines (42 loc) · 1.23 KB
/
Fahrzeug.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#pragma once
#include "Verhalten.h"
#include "Simulationsobjekt.h"
#include <iostream>
#include <iomanip>
#include <string>
#include <limits>
#include <memory>
#include <algorithm>
class Weg;
class Verhalten;
class Parken;
class Fahren;
class Fahrzeug : public Simulationsobjekt
{
protected:
unique_ptr<Verhalten> p_pVerhalten = nullptr;
double p_dMaxGeschwindigkeit = 0;
double p_dGesamtStrecke = 0;
double p_dAbschnittStrecke = 0;
double p_dGesamtZeit = 0;
double p_dZeit = 0;
public:
Fahrzeug();
Fahrzeug(string sName);
Fahrzeug(string sName, double dMaxGeschwindigkeit);
static void vKopf();
virtual void vAusgeben(ostream& os) const;
virtual double dTanken(double dMenge = numeric_limits<double>::infinity());
virtual void vSimulieren() override;
virtual void vZeichnen(Weg& aWeg) const;
virtual double dGetfreierTank() const;
virtual double dGeschwindigkeit() const;
double dgetAbschnittStrecke() const;
void vNeueStrecke(Weg&);
void vNeueStrecke(Weg&, double dStartzeitkpt);
bool operator<(const Fahrzeug&) const;
bool operator>(const Fahrzeug&) const;
void operator=(const Fahrzeug&);
Fahrzeug(const Fahrzeug&) = delete;
virtual ~Fahrzeug();
};