finished all tasks
This commit is contained in:
@@ -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;
|
||||
}
|
||||
};
|
||||
@@ -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; }
|
||||
};
|
||||
@@ -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; }
|
||||
};
|
||||
@@ -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);
|
||||
}
|
||||
};
|
||||
@@ -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;
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user