diff --git a/7_Musiker/code/Klavier.cpp b/7_Musiker/code/Klavier.cpp index 87c440a..cb94f9a 100644 --- a/7_Musiker/code/Klavier.cpp +++ b/7_Musiker/code/Klavier.cpp @@ -3,4 +3,4 @@ using namespace std; Klavier::Klavier() { cout << "Konstruktor: Klavier()" << endl; } Klavier::~Klavier() { cout << "Destruktor: ~Klavier()" << endl; } -void Klavier::spielen() { cout << "Klavier klimpert" << endl; } +void Klavier::spielen() const { cout << "Klavier klimpert" << endl; } diff --git a/7_Musiker/code/Klavier.h b/7_Musiker/code/Klavier.h index 78919c3..ed6b16d 100644 --- a/7_Musiker/code/Klavier.h +++ b/7_Musiker/code/Klavier.h @@ -4,5 +4,5 @@ class Klavier : public Musikinstrument { public: Klavier(); virtual ~Klavier(); - virtual void spielen(); + virtual void spielen() const; }; diff --git a/7_Musiker/code/Musiker.cpp b/7_Musiker/code/Musiker.cpp index 1306667..003c775 100644 --- a/7_Musiker/code/Musiker.cpp +++ b/7_Musiker/code/Musiker.cpp @@ -9,12 +9,15 @@ Musiker::Musiker(string name) { this->name = name; cout << "Konstruktor: Musiker(string name): " << name << endl; } -Musiker::~Musiker() { cout << "Destruktor: ~Musiker()" << endl; } +Musiker::~Musiker() { + cout << "Destruktor: ~Musiker()" << endl; + delete this->instrument; +} string Musiker::liefereName() { return name; } void Musiker::spielen() const { cout << name << " spielt " << instrument->liefereName() << endl; + this->instrument->spielen(); } void Musiker::weiseInstrumentZu(Musikinstrument const *instrument) { - // Musikinstrument *musikinstrument = new Musikinstrument(*instrument); - this->instrument = new Musikinstrument(*instrument); + this->instrument = instrument; } diff --git a/7_Musiker/code/Musikinstrument.cpp b/7_Musiker/code/Musikinstrument.cpp index 2bb8843..3a64653 100644 --- a/7_Musiker/code/Musikinstrument.cpp +++ b/7_Musiker/code/Musikinstrument.cpp @@ -12,7 +12,7 @@ Musikinstrument::Musikinstrument(string name) { Musikinstrument::~Musikinstrument() { cout << "Destruktor: Irgentein Musikinstrument" << endl; } -void Musikinstrument::spielen() { +void Musikinstrument::spielen() const { cout << "Irgentein Musikinstrument erklingt irgentwie" << endl; } -string Musikinstrument::liefereName() const{ return name; } +string Musikinstrument::liefereName() const { return this->name; } diff --git a/7_Musiker/code/Musikinstrument.h b/7_Musiker/code/Musikinstrument.h index 88eceee..4ad7cf2 100644 --- a/7_Musiker/code/Musikinstrument.h +++ b/7_Musiker/code/Musikinstrument.h @@ -9,6 +9,6 @@ public: Musikinstrument(); Musikinstrument(std::string name); virtual ~Musikinstrument(); - virtual void spielen(); + virtual void spielen() const; std::string liefereName() const; }; diff --git a/7_Musiker/code/Orchester.cpp b/7_Musiker/code/Orchester.cpp index f15a5c1..69779e9 100644 --- a/7_Musiker/code/Orchester.cpp +++ b/7_Musiker/code/Orchester.cpp @@ -5,15 +5,14 @@ using namespace std; Orchester::Orchester() { cout << "Konstruktor: Orchester()" << endl; } Orchester::~Orchester() { + cout << "Destruktor: ~Orchester()" << endl; for (int i = 0; i < musiker.size(); i++) { delete musiker[i]; } - cout << "Destruktor: ~Orchester()" << endl; } void Orchester::hinzufuegen(Musiker const *musiker) { - //Musiker* neuerMusiker = new Musiker(*musiker); - Orchester::musiker.push_back(new Musiker(*musiker)); + Orchester::musiker.push_back(musiker); } void Orchester::spielen() { for (int i = 0; i < musiker.size(); ++i) { diff --git a/7_Musiker/code/Trompete.cpp b/7_Musiker/code/Trompete.cpp index 564b8f2..e7d08c6 100644 --- a/7_Musiker/code/Trompete.cpp +++ b/7_Musiker/code/Trompete.cpp @@ -1,6 +1,9 @@ #include "Trompete.h" +#include "Musikinstrument.h" #include using namespace std; -Trompete::Trompete() { cout << "Konstruktor: Trompete()" << endl; } +Trompete::Trompete() { + Musikinstrument("Trompete"); + cout << "Konstruktor: Trompete()" << endl; } Trompete::~Trompete() { cout << "Destruktor: ~Trompete()" << endl; } -void Trompete::spielen() { cout << "Trompete trötet" << endl; } +void Trompete::spielen() const { cout << "Trompete trötet" << endl; } diff --git a/7_Musiker/code/Trompete.h b/7_Musiker/code/Trompete.h index 42d3048..257e8f6 100644 --- a/7_Musiker/code/Trompete.h +++ b/7_Musiker/code/Trompete.h @@ -5,5 +5,5 @@ class Trompete : public Musikinstrument { public: Trompete(); virtual ~Trompete(); - virtual void spielen() override; + virtual void spielen() const override; }; diff --git a/7_Musiker/code/build/7_Musiker b/7_Musiker/code/build/7_Musiker index c7a2b36..1b65462 100755 Binary files a/7_Musiker/code/build/7_Musiker and b/7_Musiker/code/build/7_Musiker differ diff --git a/7_Musiker/code/build/CMakeFiles/7_Musiker.dir/Klavier.cpp.o b/7_Musiker/code/build/CMakeFiles/7_Musiker.dir/Klavier.cpp.o index b309928..475c17d 100644 Binary files a/7_Musiker/code/build/CMakeFiles/7_Musiker.dir/Klavier.cpp.o and b/7_Musiker/code/build/CMakeFiles/7_Musiker.dir/Klavier.cpp.o differ diff --git a/7_Musiker/code/build/CMakeFiles/7_Musiker.dir/Musiker.cpp.o b/7_Musiker/code/build/CMakeFiles/7_Musiker.dir/Musiker.cpp.o index 39555cb..717e25e 100644 Binary files a/7_Musiker/code/build/CMakeFiles/7_Musiker.dir/Musiker.cpp.o and b/7_Musiker/code/build/CMakeFiles/7_Musiker.dir/Musiker.cpp.o differ diff --git a/7_Musiker/code/build/CMakeFiles/7_Musiker.dir/Musikinstrument.cpp.o b/7_Musiker/code/build/CMakeFiles/7_Musiker.dir/Musikinstrument.cpp.o index d683c05..dfdcc84 100644 Binary files a/7_Musiker/code/build/CMakeFiles/7_Musiker.dir/Musikinstrument.cpp.o and b/7_Musiker/code/build/CMakeFiles/7_Musiker.dir/Musikinstrument.cpp.o differ diff --git a/7_Musiker/code/build/CMakeFiles/7_Musiker.dir/Orchester.cpp.o b/7_Musiker/code/build/CMakeFiles/7_Musiker.dir/Orchester.cpp.o index 3e8bbd8..9efb447 100644 Binary files a/7_Musiker/code/build/CMakeFiles/7_Musiker.dir/Orchester.cpp.o and b/7_Musiker/code/build/CMakeFiles/7_Musiker.dir/Orchester.cpp.o differ diff --git a/7_Musiker/code/build/CMakeFiles/7_Musiker.dir/Trompete.cpp.o b/7_Musiker/code/build/CMakeFiles/7_Musiker.dir/Trompete.cpp.o index 0af9805..a22a8c3 100644 Binary files a/7_Musiker/code/build/CMakeFiles/7_Musiker.dir/Trompete.cpp.o and b/7_Musiker/code/build/CMakeFiles/7_Musiker.dir/Trompete.cpp.o differ diff --git a/7_Musiker/code/build/vgcore.4770 b/7_Musiker/code/build/vgcore.4770 new file mode 100644 index 0000000..2ccb4ca Binary files /dev/null and b/7_Musiker/code/build/vgcore.4770 differ diff --git a/7_Musiker/code/test b/7_Musiker/code/test index c1e3ea9..04e9f51 100755 Binary files a/7_Musiker/code/test and b/7_Musiker/code/test differ diff --git a/7_Musiker/code/test.cpp b/7_Musiker/code/test.cpp index d7e1598..1c68be1 100644 --- a/7_Musiker/code/test.cpp +++ b/7_Musiker/code/test.cpp @@ -21,13 +21,18 @@ int main() { Musiker *klavierMusikerPtr = new Musiker(nameKlavier); Klavier *klavierPtr = new Klavier; klavierMusikerPtr->weiseInstrumentZu(klavierPtr); - std::cout << "+++ Klavier Musiker erfolgreich addiert +++"<< std::endl; + std::cout << "+++ Klavier Musiker erfolgreich addiert +++" << std::endl; std::string nameMusikinstrument = "Musiker mit Musikinstrument"; Musiker *MusikinstrumentMusikerPtr = new Musiker(nameMusikinstrument); Musikinstrument *musikinstrumentPtr = new Musikinstrument; MusikinstrumentMusikerPtr->weiseInstrumentZu(musikinstrumentPtr); - std::cout << "+++ Musikinstrument Musiker erfolgreich addiert +++" << std::endl; + std::cout << "+++ Musikinstrument Musiker erfolgreich addiert +++" + << std::endl; + + Musikinstrument *musikinstrument4 = new Musikinstrument(); + Musikinstrument *musikinstrument5 = new Klavier(); + Musikinstrument *musikinstrument6 = new Trompete(); delete orchesterPtr; delete trompeteMusikerPtr; @@ -36,5 +41,6 @@ int main() { delete klavierPtr; delete MusikinstrumentMusikerPtr; delete musikinstrumentPtr; + std::cout << "Lösche instrument4" << std::endl; return 0; } diff --git a/7_Musiker/code/test2.cpp b/7_Musiker/code/test2.cpp new file mode 100644 index 0000000..cc136a4 --- /dev/null +++ b/7_Musiker/code/test2.cpp @@ -0,0 +1,12 @@ + +#include "Klavier.h" +#include "Musiker.h" +#include "Musikinstrument.h" +#include "Orchester.h" +#include "Trompete.h" +#include +#include +#include + +int main() { +