a.exe funktioniert nicht mehr
-
In der Zukunft sollte ich lieber konzentrierter den Code durchgehen bevor ich hier um Hilfe bitte

Danke für die Fehlersuche
-
Markus97 schrieb:
main-Datei:
#include <iostream> /* Das Einbinden der Header-Dateien wuerde * ohne Include-Guards zum mehrfachen Einbinden * der selben Header-Datei (z.B. figur.hpp) fuehren. */ #include "figur.hpp" #include "kreis.hpp" #include "rechteck.hpp" #include "quadrat.hpp" int main() { //Erzeugung des Arrays mit den jeweiligen Figuren Figur* fig[4]; fig[0]=new Figur(0,-1); fig[1]=new Kreis(0,0,1); fig[2]=new Rechteck(0,1,2,2); fig[3]=new Quadrat(0,2,3); // Gebe die Figuren auf der Konsole aus. std::cout << fig[0]->asString() << std::endl; std::cout << fig[1]->asString() << std::endl; std::cout << fig[2]->asString() << std::endl; std::cout << fig[3]->asString() << std::endl; int index=0; for(unsigned int i=0;i<2;i++){ //Berechnung der Fläche beim aktuellen Index double f1; Kreis* k1= dynamic_cast<Kreis*>(fig[i]); Quadrat* q1=dynamic_cast<Quadrat*>(fig[i]); Rechteck* r1=dynamic_cast<Rechteck*>(fig[i]); if (q1!=0){f1=q1->berechneFlaeche();} if (r1!=0){f1=r1->berechneFlaeche();} if (k1!=0){f1=k1->berechneFlaeche();} else{f1=0;} double f2; Kreis* k2= dynamic_cast<Kreis*>(fig[i+1]); Quadrat* q2=dynamic_cast<Quadrat*>(fig[i+1]); Rechteck* r2=dynamic_cast<Rechteck*>(fig[i+1]); if (q2!=0){f2=q1->berechneFlaeche();} if (r2!=0){f2=r1->berechneFlaeche();} if (k2!=0){f2=k1->berechneFlaeche();} else{f2=0;} if (f2>f1){index++;} } // Verschiebe Figuren fig[0]->verschiebe(10,10); fig[1]->verschiebe(10,10); fig[2]->verschiebe(10,10); fig[3]->verschiebe(10,10); // Gebe die Figuren auf der Konsole aus std::cout << fig[0]->asString() << std::endl; std::cout << fig[1]->asString() << std::endl; std::cout << fig[2]->asString() << std::endl; std::cout << fig[3]->asString() << std::endl; // Bereinige Speicher. delete fig[0]; delete fig[1]; delete fig[2]; delete fig[3]; }Ähm...jetzt bin ich baff...
Bist Du sicher dass Du die Aufgabe richtig verstanden hast? Gibt es dazu einen Lehrer oder Prof, bei dem Du nachfragen kannst?
Und noch eins:
// Gebe die Figuren auf der Konsole aus std::cout << fig[0]->asString() << std::endl; std::cout << fig[1]->asString() << std::endl; std::cout << fig[2]->asString() << std::endl; std::cout << fig[3]->asString() << std::endl;Kennst Du einen Mechanismus in C++, der ohne copy&paste einen Programmabschnitt x-mal wiederholt?
-
Ich denke ich habe die Aufgabe gut verstanden

Und noch eins:
C++:
// Gebe die Figuren auf der Konsole aus
std::cout << fig[0]->asString() << std::endl;
std::cout << fig[1]->asString() << std::endl;
std::cout << fig[2]->asString() << std::endl;
std::cout << fig[3]->asString() << std::endl;
Kennst Du einen Mechanismus in C++, der ohne copy&paste einen Programmabschnitt x-mal wiederholt?Ja natürlich kenne ich da einen Mechanismus^^ Nur war die Aufgabe so gegeben.
-
Markus97 schrieb:
Nur war die Aufgabe so gegeben.
Vielleicht eine pädagogische Volte...
Guten Rutsch jedenfalls!
