finished all tasks

This commit is contained in:
2026-06-29 21:18:48 +02:00
parent 6303f5f224
commit a2680f18b4
21 changed files with 797 additions and 9 deletions
+22
View File
@@ -0,0 +1,22 @@
#pragma once
#include <string>
#include "Musikinstrument.h"
class Klavier : public Musikinstrument
{
public:
Klavier() : Musikinstrument("Klavier")
{
std::cout << "Konstruktor : Klavier() : " << std::endl;
}
virtual ~Klavier()
{
std::cout << "Destruktor : ~Klavier() : " << std::endl;
}
void spielen() const
{
std::cout << "Das Klavier klimpert" << std::endl;
}
};
+52
View File
@@ -0,0 +1,52 @@
#pragma once
#include <string>
#include <iostream>
#include "Musikinstrument.h"
class Musiker
{
std::string const name;
Musikinstrument const* instrument;
public:
Musiker(const std::string& n) : name(n), instrument(nullptr)
{
std::cout << "Konstruktor : Musiker(string name) : " << name << std::endl;
}
Musiker() : name("Name unbekannt"), instrument(nullptr)
{
std::cout << "Konstruktor : Musiker() : " << name << std::endl;
}
virtual ~Musiker()
{
std::cout << "Destruktor : ~Musiker() : " << name << std::endl;
delete instrument;
}
void weiseInstrumentZu(Musikinstrument const* instrumentToAssign)
{
if(instrument != nullptr)
{
std::cout << "Der Musiker " << name << " hat bereits ein Instrument zugewiesen bekommen. Das alte Instrument wird durch das neue ersetzt" << std::endl;
delete instrument;
}
instrument = instrumentToAssign;
std::cout << "Der Musiker " << name << " erhält das Instrument " << instrument->liefereName() << std::endl;
}
void spielen() const
{
if(instrument != nullptr)
{
std::cout << name << " spielt " << instrument->liefereName() << ": " <<std::endl;
instrument->spielen();
}
else
{
std::cout << "Der Musiker " << name << " hat kein Instrument zugewiesen bekommen und kann daher nicht spielen." << std::endl;
}
}
std::string liefereName() const { return name; }
};
+28
View File
@@ -0,0 +1,28 @@
#pragma once
#include <string>
#include <iostream>
class Musikinstrument
{
std::string const name;
public:
Musikinstrument(const std::string& n) : name(n)
{
std::cout << "Konstruktor : Musikinstrument(string name) : " << name << std::endl;
}
Musikinstrument() : name("Irgendein Musikinstrument")
{
std::cout << "Konstruktor : Musikinstrument() : " << name << std::endl;
}
virtual ~Musikinstrument() { std::cout << "Destruktor : ~Musikinstrument() : " << name << std::endl; }
virtual void spielen() const
{
std::cout << "Irgendein Musikinstrument erklingt irgendwie." << std::endl;
}
std::string liefereName() const { return name; }
};
+38
View File
@@ -0,0 +1,38 @@
#pragma once
#include <string>
#include <iostream>
#include <vector>
#include "Musiker.h"
class Orchester
{
std::vector<Musiker const*> musiker;
public:
Orchester()
{
std::cout << "Konstruktor : Orchester() : " << std::endl;
}
virtual ~Orchester()
{
std::cout << "Destruktor : ~Orchester() : " << std::endl;
for(Musiker const* m : musiker)
{
delete m;
}
}
void spielen() const
{
for(Musiker const* m : musiker)
{
m->spielen();
}
}
void hinzufuegen(Musiker const* m)
{
musiker.push_back(m);
}
};
+22
View File
@@ -0,0 +1,22 @@
#pragma once
#include <string>
#include "Musikinstrument.h"
class Trompete : public Musikinstrument
{
public:
Trompete() : Musikinstrument("Trompete")
{
std::cout << "Konstruktor : Trompete() : " << std::endl;
}
virtual ~Trompete()
{
std::cout << "Destruktor : ~Trompete() : " << std::endl;
}
void spielen() const
{
std::cout << "Die Trompete trötet" << std::endl;
}
};