teste, ich denke der Fehler liegt irgentwo dabei den eingegebenen String richtig zu allokieren
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
cmake_minimum_required(VERSION 4.3.0)
|
||||
project(7_Musiker)
|
||||
add_executable(${PROJECT_NAME} main.cpp Musikinstrument.cpp Trompete.cpp Klavier.cpp Musiker.cpp Orchester.cpp)
|
||||
|
||||
|
||||
@@ -11,8 +11,10 @@ Musiker::Musiker(string name) {
|
||||
}
|
||||
Musiker::~Musiker() { cout << "Destruktor: ~Musiker()" << endl; }
|
||||
string Musiker::liefereName() { return name; }
|
||||
void Musiker::spielen() { cout << name << "spielt " << instrument << endl; }
|
||||
void Musiker::spielen() const {
|
||||
cout << name << " spielt " << instrument->liefereName() << endl;
|
||||
}
|
||||
void Musiker::weiseInstrumentZu(Musikinstrument const *instrument) {
|
||||
Musikinstrument *musikinstrument = new Musikinstrument(*instrument);
|
||||
this->instrument = musikinstrument;
|
||||
// Musikinstrument *musikinstrument = new Musikinstrument(*instrument);
|
||||
this->instrument = new Musikinstrument(*instrument);
|
||||
}
|
||||
|
||||
@@ -12,6 +12,6 @@ public:
|
||||
Musiker(std::string name);
|
||||
virtual ~Musiker();
|
||||
void weiseInstrumentZu(Musikinstrument const* instrument);
|
||||
void spielen();
|
||||
void spielen() const;
|
||||
std::string liefereName();
|
||||
};
|
||||
|
||||
@@ -15,4 +15,4 @@ Musikinstrument::~Musikinstrument() {
|
||||
void Musikinstrument::spielen() {
|
||||
cout << "Irgentein Musikinstrument erklingt irgentwie" << endl;
|
||||
}
|
||||
string Musikinstrument::liefereName() { return name; }
|
||||
string Musikinstrument::liefereName() const{ return name; }
|
||||
|
||||
@@ -8,7 +8,7 @@ private:
|
||||
public:
|
||||
Musikinstrument();
|
||||
Musikinstrument(std::string name);
|
||||
~Musikinstrument();
|
||||
virtual ~Musikinstrument();
|
||||
virtual void spielen();
|
||||
std::string liefereName();
|
||||
std::string liefereName() const;
|
||||
};
|
||||
|
||||
@@ -4,12 +4,19 @@
|
||||
using namespace std;
|
||||
|
||||
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) {
|
||||
Orchester::musiker.push_back(*musiker);
|
||||
//Musiker* neuerMusiker = new Musiker(*musiker);
|
||||
Orchester::musiker.push_back(new Musiker(*musiker));
|
||||
}
|
||||
void Orchester::spielen() {
|
||||
for (int i = 0; i < musiker.size(); ++i) {
|
||||
musiker[i].spielen();
|
||||
musiker[i]->spielen();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
class Orchester {
|
||||
private:
|
||||
std::vector<Musiker> musiker;
|
||||
std::vector<Musiker const*> musiker;
|
||||
|
||||
public:
|
||||
Orchester();
|
||||
|
||||
Binary file not shown.
@@ -31,7 +31,7 @@ CMAKE_AR:FILEPATH=/usr/bin/ar
|
||||
|
||||
//Choose the type of build, options are: None Debug Release RelWithDebInfo
|
||||
// MinSizeRel ...
|
||||
CMAKE_BUILD_TYPE:STRING=
|
||||
CMAKE_BUILD_TYPE:STRING=Debug
|
||||
|
||||
//Enable/Disable color output during build.
|
||||
CMAKE_COLOR_MAKEFILE:BOOL=ON
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -6,5 +6,5 @@ CXX_DEFINES =
|
||||
|
||||
CXX_INCLUDES =
|
||||
|
||||
CXX_FLAGS =
|
||||
CXX_FLAGS = -g
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Binary file not shown.
@@ -12,7 +12,7 @@ if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
|
||||
string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
|
||||
CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
|
||||
else()
|
||||
set(CMAKE_INSTALL_CONFIG_NAME "")
|
||||
set(CMAKE_INSTALL_CONFIG_NAME "Debug")
|
||||
endif()
|
||||
message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
|
||||
endif()
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Executable
BIN
Binary file not shown.
@@ -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;
|
||||
}
|
||||
Reference in New Issue
Block a user