teste, ich denke der Fehler liegt irgentwo dabei den eingegebenen String richtig zu allokieren

This commit is contained in:
Tobias Kachel 2026-06-03 15:43:05 +02:00
parent 08abbd17b3
commit 28bf74d2a8
26 changed files with 2760 additions and 487 deletions

View File

@ -1,4 +1,3 @@
cmake_minimum_required(VERSION 4.3.0) cmake_minimum_required(VERSION 4.3.0)
project(7_Musiker) project(7_Musiker)
add_executable(${PROJECT_NAME} main.cpp Musikinstrument.cpp Trompete.cpp Klavier.cpp Musiker.cpp Orchester.cpp) add_executable(${PROJECT_NAME} main.cpp Musikinstrument.cpp Trompete.cpp Klavier.cpp Musiker.cpp Orchester.cpp)

View File

@ -11,8 +11,10 @@ Musiker::Musiker(string name) {
} }
Musiker::~Musiker() { cout << "Destruktor: ~Musiker()" << endl; } Musiker::~Musiker() { cout << "Destruktor: ~Musiker()" << endl; }
string Musiker::liefereName() { return name; } string Musiker::liefereName() { return name; }
void Musiker::spielen() { cout << name << "spielt " << instrument << endl; } void Musiker::spielen() const {
void Musiker::weiseInstrumentZu(Musikinstrument const *instrument) { cout << name << " spielt " << instrument->liefereName() << endl;
Musikinstrument *musikinstrument = new Musikinstrument(*instrument); }
this->instrument = musikinstrument; void Musiker::weiseInstrumentZu(Musikinstrument const *instrument) {
// Musikinstrument *musikinstrument = new Musikinstrument(*instrument);
this->instrument = new Musikinstrument(*instrument);
} }

View File

@ -12,6 +12,6 @@ public:
Musiker(std::string name); Musiker(std::string name);
virtual ~Musiker(); virtual ~Musiker();
void weiseInstrumentZu(Musikinstrument const* instrument); void weiseInstrumentZu(Musikinstrument const* instrument);
void spielen(); void spielen() const;
std::string liefereName(); std::string liefereName();
}; };

View File

@ -15,4 +15,4 @@ Musikinstrument::~Musikinstrument() {
void Musikinstrument::spielen() { void Musikinstrument::spielen() {
cout << "Irgentein Musikinstrument erklingt irgentwie" << endl; cout << "Irgentein Musikinstrument erklingt irgentwie" << endl;
} }
string Musikinstrument::liefereName() { return name; } string Musikinstrument::liefereName() const{ return name; }

View File

@ -8,7 +8,7 @@ private:
public: public:
Musikinstrument(); Musikinstrument();
Musikinstrument(std::string name); Musikinstrument(std::string name);
~Musikinstrument(); virtual ~Musikinstrument();
virtual void spielen(); virtual void spielen();
std::string liefereName(); std::string liefereName() const;
}; };

View File

@ -4,12 +4,19 @@
using namespace std; using namespace std;
Orchester::Orchester() { cout << "Konstruktor: Orchester()" << endl; } Orchester::Orchester() { cout << "Konstruktor: Orchester()" << endl; }
Orchester::~Orchester() { cout << "Destruktor: ~Orchester()" << endl; } Orchester::~Orchester() {
for (int i = 0; i < musiker.size(); i++) {
delete musiker[i];
}
cout << "Destruktor: ~Orchester()" << endl;
}
void Orchester::hinzufuegen(Musiker const *musiker) { void Orchester::hinzufuegen(Musiker const *musiker) {
Orchester::musiker.push_back(*musiker); //Musiker* neuerMusiker = new Musiker(*musiker);
Orchester::musiker.push_back(new Musiker(*musiker));
} }
void Orchester::spielen() { void Orchester::spielen() {
for (int i = 0; i < musiker.size(); ++i) { for (int i = 0; i < musiker.size(); ++i) {
musiker[i].spielen(); musiker[i]->spielen();
} }
} }

View File

@ -4,7 +4,7 @@
class Orchester { class Orchester {
private: private:
std::vector<Musiker> musiker; std::vector<Musiker const*> musiker;
public: public:
Orchester(); Orchester();

Binary file not shown.

View File

@ -31,7 +31,7 @@ CMAKE_AR:FILEPATH=/usr/bin/ar
//Choose the type of build, options are: None Debug Release RelWithDebInfo //Choose the type of build, options are: None Debug Release RelWithDebInfo
// MinSizeRel ... // MinSizeRel ...
CMAKE_BUILD_TYPE:STRING= CMAKE_BUILD_TYPE:STRING=Debug
//Enable/Disable color output during build. //Enable/Disable color output during build.
CMAKE_COLOR_MAKEFILE:BOOL=ON CMAKE_COLOR_MAKEFILE:BOOL=ON

View File

@ -6,5 +6,5 @@ CXX_DEFINES =
CXX_INCLUDES = CXX_INCLUDES =
CXX_FLAGS = CXX_FLAGS = -g

View File

@ -1 +1 @@
/usr/bin/c++ -Wl,--dependency-file=CMakeFiles/7_Musiker.dir/link.d CMakeFiles/7_Musiker.dir/main.cpp.o CMakeFiles/7_Musiker.dir/Musikinstrument.cpp.o CMakeFiles/7_Musiker.dir/Trompete.cpp.o CMakeFiles/7_Musiker.dir/Klavier.cpp.o CMakeFiles/7_Musiker.dir/Musiker.cpp.o CMakeFiles/7_Musiker.dir/Orchester.cpp.o -o 7_Musiker /usr/bin/c++ -g -Wl,--dependency-file=CMakeFiles/7_Musiker.dir/link.d CMakeFiles/7_Musiker.dir/main.cpp.o CMakeFiles/7_Musiker.dir/Musikinstrument.cpp.o CMakeFiles/7_Musiker.dir/Trompete.cpp.o CMakeFiles/7_Musiker.dir/Klavier.cpp.o CMakeFiles/7_Musiker.dir/Musiker.cpp.o CMakeFiles/7_Musiker.dir/Orchester.cpp.o -o 7_Musiker

View File

@ -12,7 +12,7 @@ if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
else() else()
set(CMAKE_INSTALL_CONFIG_NAME "") set(CMAKE_INSTALL_CONFIG_NAME "Debug")
endif() endif()
message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
endif() endif()

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
7_Musiker/code/test Executable file

Binary file not shown.

40
7_Musiker/code/test.cpp Normal file
View File

@ -0,0 +1,40 @@
#include "Klavier.h"
#include "Musiker.h"
#include "Musikinstrument.h"
#include "Orchester.h"
#include "Trompete.h"
#include <iostream>
#include <ostream>
#include <string>
int main() {
// Test Orchester
Orchester *orchesterPtr = new Orchester;
Orchester testOrchester = *orchesterPtr;
std::cout << "+++ Orchester erfolgreich addiert +++" << std::endl;
std::string nameTrompete = "Musiker mit Trompete";
Musiker *trompeteMusikerPtr = new Musiker(nameTrompete);
Trompete *trompetePtr = new Trompete;
trompeteMusikerPtr->weiseInstrumentZu(trompetePtr);
std::cout << "Trompeten Musiker erfolgreich addiert +++" << std::endl;
std::string nameKlavier = "Musiker mit Klavier";
Musiker *klavierMusikerPtr = new Musiker(nameKlavier);
Klavier *klavierPtr = new Klavier;
klavierMusikerPtr->weiseInstrumentZu(klavierPtr);
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;
delete orchesterPtr;
delete trompeteMusikerPtr;
delete trompetePtr;
delete klavierMusikerPtr;
delete klavierPtr;
delete MusikinstrumentMusikerPtr;
delete musikinstrumentPtr;
return 0;
}