Mikrowelle Praktikum



  • Okay Danke... 🙂

    Das Volumen soll, sowie ich das sehe nicht überprüft werden.

    Hm... ich verstehe nur nicht, wie ich eine main aufbaue. Erhlich gesagt hab ich erst einmal mit Klassen und Co gearbeitet. Dort hatte ich Handy und Ladestation, bei denen ich bei beiden mehrere Objekte hatte. Wenn ich diese Aufgabe richtig verstehe, habe ich aber nur 1 Mikrowelle. Deswegen verstehe ich nicht so ganz wie ich sie aufrufen soll. ganz einfach wie jedes Objekt auch?

    also z.B

    Microwave m1( 400 );
    

    ?

    Und wie bekomme ich die Bezeichner von power und period, die ja in der Microwave.h definiert sind in die ForzenMeal, da brauche ich Sie ja um den Koeffizienten auszugeben?



  • ThaRealMatix schrieb:

    Was hätte ich von define Power_max etc... eine definiertes maximum von power okay. aber ich muss immer noch einen vergleichsoperator benutzen, um zu sehen ob es übertreten wird oder nicht?

    Ja, aber du oder auch ein anderer kann es viel schneller ändern. Und wenn du mal ein größeres Programm hast, indem 100 mal 200 steht und das 30 verschiedene Bedeutungen hat, dann wird es lustig.



  • Mal ein kleines Programmfragment:

    MicroWave mw(400);//Mikrowelle anlegen
    FrozenMeal dinner("Thunfisch",250);//Essen bereitlegen
    
    //Mikrowelle einstellen:
    while(mw.getPower()<1000) mv.morePower();
    mv.setPeriod(25);
    
    //und schließlich - Essen zubereiten:
    mv.heatMeal(dinner);
    

    Aber du scheinst massive Probleme mit den Grundlagen von C++ zu haben - eventuell solltest du mal die vorigen Kapitel deines Leerbuches durcharbeiten 😉



  • Hm sorry ich hatte auch die Aufgabenstellung falsch verstanden. Der Coefficient ist wohl konstant 0.24 und das dahinter nur ein Beispiel, wie e errechnet wurde.

    -.-

    Leider bekomme ich folgende Fehlermeldung beim kompilieren:

    Die Zwischen- und Ausgabedateien für das Projekt "microwave" mit der Konfiguration "Debug|Win32" werden gelöscht.
    Kompilieren...
    FrozenMeal.cpp
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(45) : error C2470: "FrozenMeal::getCoefficient": Sieht wie eine Funktionsdefinition aus, es ist aber keine Parameterliste vorhanden; sichtbarer Funktionstext wird übersprungen.
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(51) : warning C4244: 'return': Konvertierung von 'double' in 'int', möglicher Datenverlust

    double FrozenMeal::getCoefficient
    {
    	return coefficient;
    }
    

    P.S mit deinem PRogramm läuft es auch nicht 😞



  • d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(45) : error C2470: "FrozenMeal::getCoefficient": Sieht wie eine Funktionsdefinition aus, es ist aber keine Parameterliste vorhanden; sichtbarer Funktionstext wird übersprungen.

    Auch wenn die Funktion keine Parameter entgegennehmen soll, mußt du eine (leere) Parameterliste (entweder als () oder als (void) ) bei der Definition angeben.

    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(51) : warning C4244: 'return': Konvertierung von 'double' in 'int', möglicher Datenverlust

    [/quote]Welche Methode betrifft das denn? Du hast dort vermutlich (ziemlich sicher) ein double-Element (Gleitkomma-Zahl) als int (Ganzzahl) zurückgegeben.

    PS: Das da oben ist kein Programm, sondern nur ein Ausschnitt, wie du die Klassen verwenden kannst. Das Programm darfst du gerne selber schreiben.

    PPS: Und noch einmal: LERN DIE GRUNDLAGEN VON C++!!



  • Hm... ich weiss ja das ich nachholbedarf habe, aber ich muss diese Aufgaben halt abgeben 😕

    was ich nciht verstehe, ist, dass etwas ziemlich ähnliches, das in einer aufgabe funktionierte, nun nicht mehr zu funktionieren scheint.

    ich hab nun wie flgt abgeändert

    Microwave::Microwave(int aPower, int aVolume)
    {
    	power = aPower;
            volume= aVolume;
    }
    

    ich bekomme nun folgende Fehlermeldung:

    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\microwave.h(26) : error C2061: Syntaxfehler: Bezeichner 'FrozenMeal'

    die header hat den eintrag

    void heatMeal(FrozenMeal);
    


  • Kannst du mal bitte etwas mehr posten als die paar Fragmente? (und häufig liegt der tatsächliche Fehler ein paar Zeilen über der gemeldeten Stelle)

    Mir könnte als Grund nur einfallen, daß der Bezeichner "FrozenMeal" (noch) nicht bekannt ist - entweder du vertauschst die Klassendefinitionen im Header oder du setzt eine Forward-Deklaration class FrozenMeal; vor die MicroWave-Klasse.

    Hm... ich weiss ja das ich nachholbedarf habe, aber ich muss diese Aufgaben halt abgeben 😕

    Dann mußt du halt ein leeres Blatt abgeben und deinem Prof erklären, daß du im Unterricht nicht aufgepasst hast 🕶



  • Was hieße ein halbes Jahr für die Katz. Versteh mich nciht falsch, ich weiss das Du/ihr Mühe in Euer C++ Können gesteckt habt und wenn ihr mir nicht helfen wollt, weil ihr mich für Faul haltet, und es für unfair haltet mir zu helfen ist das ok.

    Ich habe halt eine Weile wegen Krankheit gefehlt. Jetzt hinke ich hinterher, Die Praktikas sind aber Bedingung, um an der Prüfung teilzunehmen.

    Ich will ja alles nachholen, aber kein ganzes halbes Jahr / Semester hinschmeissen, weil ich das Praktikum heute nicht schaffe. Also versuche ich es eben. Wenn ich ducrhfalle weiss ich wenigstens, ich habe alles versucht.

    Wie gesagt, wenn ihr mir nicht helfen möchtet weil ihr meint selber Schuld, mache ich Euch gewiss keinen Vorwurf. ICh kann mir nru auch keinen machen, weil ich nicht lernen konnte.

    Ich poste mal nun alles, wie ich es nun soweit habe:

    FrozenMeal.h

    #pragma once
    #include <string>
    #include "Microwave.h"
    using namespace std;
    
    class FrozenMeal
    {
    private:
    	string name;
    	int volume;
    	double temperature;
    	double coefficient;
    
    public:
    	FrozenMeal(string name, int volume);
    	FrozenMeal(FrozenMeal&);
    	~FrozenMeal();
    	void changeTemperature(double zuwachs);
    	string getName();
    	int getVolume();
    	double getCoefficient();
    	double getTemperature();
    };
    

    FrozenMeal.cpp

    #include "FrozenMeal.h"
    #include "Microwave.h"
    
    FrozenMeal::FrozenMeal(string aName, int aVolume)
    {
    	name = aName;
    	volume = aVolume;
    	temperature = -18;
    	coefficient = 0.24;
    }
    
    FrozenMeal::FrozenMeal(FrozenMeal& f)
    {
    	name = f.name;
    	volume = f.volume;
    	temperature = f.temperature;
    	coefficient = f.coefficient;
    }
    
    FrozenMeal::~FrozenMeal(void)
    {
    }
    
    void FrozenMeal::changeTemperature(double zuwachs)
    {
    	temperature += zuwachs;
    } 
    
    string FrozenMeal::getName()
    {
    	return name;
    }
    
    int FrozenMeal::getVolume()
    {
    	return volume;
    }
    
    double FrozenMeal::getCoefficient()
    {
    	return coefficient;
    }
    
    double FrozenMeal::getTemperature()
    {
    	return temperature;
    }
    

    Microwave.h

    #pragma once
    #include <string>
    #include <iostream>
    #include <cassert>
    using namespace std;
    
    class Microwave
    {
    private:
    	int power;		
    	int volume;		
    	double period;
    
    public:
    	Microwave(int power, int volume);
    	Microwave (Microwave&);
    	~Microwave(void);
    	void morePower();
    	void lessPower();
    	void setPeriod(double);
    //	void heatMeal(FrozenMeal);
    //	int getPower();
    //	double getPeriod();
    };
    

    Microwave.cpp

    #include "FrozenMeal.h"
    #include "Microwave.h"
    
    Microwave::Microwave(int aPower, int aVolume)
    {
    	power = aPower;
    	volume = aVolume;
    	//assert ((power >= 200) && (power <= 1000) && (power % 100 == 0));
    }
    
    Microwave::~Microwave(void)
    {
    	cout << "Die Mikrowelle hat eine eingestellte Leistung von: " << power << "W" << endl;
    
    }
    
    void Microwave::morePower()
    {
    	if (power <=800)				//wenn Leistung nicht groesser als 800 Watt 
    		{							// erhöhe um 200. 800 + 200 = 1000 = max 
    			power=power+200;
    		} 
    }
    
    void Microwave::lessPower()
    {
       power -= 200;					// Leistung wird um 200 verringert
       if (power < 200)					// Wenn LEistung kleiner als 200 wird
          power = 200;					// Leistung auf 200 gesetzt da minimum
    }
    
    void setPeriod()
    {
    
    }
    /*
    void Microwave::heatMeal(FrozenMeal& meal)
    {
        meal.changeTemperature(meal.getCoefficient()*power*period/meal.getVolume());
    }
    
    int getPower()
    {
    	return power;
    }
    
    double getPeriod()
    {
    	return period;
    }*/
    

    main.cpp

    #include "Microwave.h"
    #include "FrozenMeal.h"
    
    using namespace std;
    
    void main()
    {
    	FrozenMeal f1 ("Truthahn", 250); //Erstellung des Gerichts
    	cout << "Name des Gerichts: " << f1.getName() <<endl //Ausgabe des Namens
    		 << "Temperatur des Gerichts: " << f1.getTemperature() << endl // Ausgabe der Temperatur
    		 << "Volumen des Gerichts: " << f1.getVolume() << "in ccm" <<endl; //Ausgabe Volumen
    
    	system("Pause");
    }
    

    Derzeit läuft das Programm, aber halt ohne einige Funktionen und nur weil ich einiges auskommentiert habe.



  • Da solltest du als erstes die verbleibenden Methoden deiner Klassen anlegen. Und dann solltest du sie auch als Klassenmethoden definieren (da gehört in der CPP-Datei das "MicroWave::" dazu).

    Als nächstes solltest die Methoden mit Inhalt füllen (setPeriod() setzt das Element period auf den übernommenen Wert etc.).

    Und ich nehme mal an, das Hauptprogramm sollte auch die MicroWave-Klasse nutzen (siehe dazu das Programmfragment in einem meiner letzten Beiträge)

    PS: Wenn heatMeal() seinen Beitrag per Kopie übergeben bekommt, wirkt es sich nicht auf dein Mittagessen aus - du benötigst dort eine Referenz ( void heatMeal(FrozenMeal&); ). Und die Aufgabe verlangt, daß der MicroWave-Ctor nur einen int-Wert übernimmt (was der darstellen soll, kann ich nicht genau feststellen - vermutlich das Volumen).

    PPS:

    Was hieße ein halbes Jahr für die Katz. Versteh mich nciht falsch, ich weiss das Du/ihr Mühe in Euer C++ Können gesteckt habt und wenn ihr mir nicht helfen wollt, weil ihr mich für Faul haltet, und es für unfair haltet mir zu helfen ist das ok.

    Falls du es nicht bemerkt hast, ich will dir ja helfen. Aber dafür mußt du auch etwas tun 😉



  • [quote="CStoll"]Da solltest du als erstes die verbleibenden Methoden deiner Klassen anlegen. Und dann solltest du sie auch als Klassenmethoden definieren (da gehört in der CPP-Datei das "MicroWave::" dazu).
    [quote]

    Ich dachte das hätte ich? Da ich "Microwave" benutze anstatt "MicroWave" und auch sonst kein "MicroWave" habe sondern überall nur "Microwave" ?
    [quote="CStoll"]
    Als nächstes solltest die Methoden mit Inhalt füllen (setPeriod() setzt das Element period auf den übernommenen Wert etc.).
    [quote]

    Da ich kein Cin innerhalb der Microwave.cpp nutzen darf, so?

    void setPeriod(double aPeriod)
    {
    	period=aPeriod
    
    }
    

    Dann muss ich aber beim Funktionsaufruf die Zeit dort eingeben, korrekt?

    [quote="CStoll"]
    Und ich nehme mal an, das Hauptprogramm sollte auch die MicroWave-Klasse nutzen (siehe dazu das Programmfragment in einem meiner letzten Beiträge)

    PS: Wenn heatMeal() seinen Beitrag per Kopie übergeben bekommt, wirkt es sich nicht auf dein Mittagessen aus - du benötigst dort eine Referenz ( void heatMeal(FrozenMeal&); ). Und die Aufgabe verlangt, daß der MicroWave-Ctor nur einen int-Wert übernimmt (was der darstellen soll, kann ich nicht genau feststellen - vermutlich das Volumen).
    [quote]

    Ich bin bis dato zwar von Power ausgegangen (weil mir auch nicht klar ist, wozu ich dort volume habe).

    Und Entschuldige, aber das mit dem ForzenMeal& hab ich nun nicht verstanden 😞



  • ThaRealMatix schrieb:

    CStoll schrieb:

    Da solltest du als erstes die verbleibenden Methoden deiner Klassen anlegen. Und dann solltest du sie auch als Klassenmethoden definieren (da gehört in der CPP-Datei das "MicroWave::" dazu).

    Ich dachte das hätte ich? Da ich "Microwave" benutze anstatt "MicroWave" und auch sonst kein "MicroWave" habe sondern überall nur "Microwave" ?

    OK, dann eben "Microwave::" - auf jeden Fall nützt es nichts, wenn du setPeriod() etc. als externe Funktionen definierst.

    CStoll schrieb:

    Als nächstes solltest die Methoden mit Inhalt füllen (setPeriod() setzt das Element period auf den übernommenen Wert etc.).

    Da ich kein Cin innerhalb der Microwave.cpp nutzen darf, so?

    void setPeriod(double aPeriod)
    {
    	period=aPeriod
    
    }
    

    Dann muss ich aber beim Funktionsaufruf die Zeit dort eingeben, korrekt?

    Genau richtig erkannt. (und wenn ich die Aufgabe richtig verstanden habe, darf das Hauptprogramm wieder cin verwenden, um diese Werte abzufragen)

    CStoll schrieb:

    Und ich nehme mal an, das Hauptprogramm sollte auch die MicroWave-Klasse nutzen (siehe dazu das Programmfragment in einem meiner letzten Beiträge)

    PS: Wenn heatMeal() seinen Beitrag per Kopie übergeben bekommt, wirkt es sich nicht auf dein Mittagessen aus - du benötigst dort eine Referenz ( void heatMeal(FrozenMeal&); ). Und die Aufgabe verlangt, daß der MicroWave-Ctor nur einen int-Wert übernimmt (was der darstellen soll, kann ich nicht genau feststellen - vermutlich das Volumen).

    Ich bin bis dato zwar von Power ausgegangen (weil mir auch nicht klar ist, wozu ich dort volume habe).

    Das könnte auch sein - aus deinem Aufgabentext geht die Bedeutung der Parameter nicht hervor.

    Und Entschuldige, aber das mit dem ForzenMeal& hab ich nun nicht verstanden 😞

    Wenn du dein Mittagessen per Kopie (heatMeal(FrozenMeal)) an die Funktion übergibst, hat diese ein eigenständiges Objekt, das am Ende der Methode wieder zerstört wird - auf das Objekt, das du in der main() angelegt hast, hat die Mikrowelle keinen Einfluß. Mit dem FrozenMeal**&** übergibst du eine Referenz auf das Objekt - das heißt die Mikrowell kocht das Objekt, das du in der main() angelegt hast.



  • Hm.. also was komisch ist, das meine Microwelle gar nciht als Klasse in der Klassenansicht vom MVS angezeigt wird.

    Habe alles nun wie folgt:

    FrozenMeal.h

    #include <string>
    #include "Microwave.h"
    using namespace std;
    
    class FrozenMeal
    {
    private:
    	string name;
    	int volume;
    	double temperature;
    	double coefficient;
    
    public:
    	FrozenMeal(string name, int volume);
    	~FrozenMeal();
    	void changeTemperature(double zuwachs);
    	string getName();
    	int getVolume();
    	double getCoefficient();
    	double getTemperature();
    };
    

    FrozenMeal.cpp

    #include "FrozenMeal.h"
    #include "Microwave.h"
    
    FrozenMeal::FrozenMeal(string aName, int aVolume)
    {
    	name = aName;
    	volume = aVolume;
    	temperature = -18;
    	coefficient = 0.24;
    }
    
    FrozenMeal::~FrozenMeal(void)
    {
    }
    
    void FrozenMeal::changeTemperature(double zuwachs)
    {
    	temperature += zuwachs;
    } 
    
    string FrozenMeal::getName()
    {
    	return name;
    }
    
    int FrozenMeal::getVolume()
    {
    	return volume;
    }
    
    double FrozenMeal::getCoefficient()
    {
    	return coefficient;
    }
    
    double FrozenMeal::getTemperature()
    {
    	return temperature;
    }
    

    Microwave.h

    #include "FrozenMeal.h"
    #include <string>
    #include <iostream>
    using namespace std;
    
    class Microwave
    {
    private:
    	int power;		
    	int volume;		
    	double period;
    
    public:
    	Microwave(int volume);
    	Microwave (Microwave&);
    	~Microwave(void);
    	void morePower();
    	void lessPower();
    	void setPeriod(double);
    	void heatMeal(FrozenMeal&);
    	int getPower();
    	double getPeriod();
    };
    

    Microwave.cpp

    #include "FrozenMeal.h"
    #include "Microwave.h"
    
    Microwave::Microwave(int aVolume)
    {
    	volume = aVolume;
    }
    
    Microwave::~Microwave(void)
    {
    	cout << "Die Mikrowelle hat eine eingestellte Leistung von: " << power << "W" << endl;
    
    }
    
    void Microwave::morePower()
    {
    	if (power <=800)				//wenn Leistung nicht groesser als 800 Watt 
    		{							// erhöhe um 200. 800 + 200 = 1000 = max 
    			power=power+200;
    		} 
    }
    
    void Microwave::lessPower()
    {
       power -= 200;					// Leistung wird um 200 verringert
       if (power < 200)					// Wenn Leistung kleiner als 200 wird
          power = 200;					// Leistung auf 200 gesetzt da minimum
    }
    
    void Microwave::setPeriod(double aPeriod)
    {
    	period= aPeriod;
    
    }
    
    void Microwave::heatMeal(FrozenMeal& meal)
    {
    	setPeriod(240);
        morePower();
    
    	meal.changeTemperature(meal.getTemperature() +  meal.getCoefficient()* getPower()*getPeriod() / meal.getVolume() );
    }
    
    int Microwave::getPower()
    {
    	return power;
    }
    
    double Microwave::getPeriod()
    {
    	return period;
    }
    

    main.cpp

    #include "Microwave.h"
    #include "FrozenMeal.h"
    
    using namespace std;
    
    void main()
    {
    	Microwave mv(25);
    	FrozenMeal meal ("Truthahn", 300);
    
    	mv.heatMeal(meal);
    
    }
    

    Bekomme immer noch den Fehler:

    ------ Neues Erstellen gestartet: Projekt: microwave, Konfiguration: Debug Win32 ------
    Die Zwischen- und Ausgabedateien für das Projekt "microwave" mit der Konfiguration "Debug|Win32" werden gelöscht.
    Kompilieren...
    FrozenMeal.cpp
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\microwave.h(8) : fatal error C1014: Zu viele Headerdateien: Tiefe = 1024
    main.cpp
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(6) : fatal error C1014: Zu viele Headerdateien: Tiefe = 1024
    Microwave.cpp
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\microwave.h(8) : fatal error C1014: Zu viele Headerdateien: Tiefe = 1024
    Code wird generiert...
    Das Buildprotokoll wurde unter "file://d:\Eigene Dateien\Visual Studio 2005\Projects\Programmieren1_Praktikum5\microwave\Debug\BuildLog.htm" gespeichert.
    microwave - 3 Fehler, 0 Warnung(en)
    ========== Alles neu erstellen: 0 erfolgreich, Fehler bei 1, 0 übersprungen ==========



  • Jaja, die Header-Dateien 😉 Du solltest wirklich nur die Header einbinden, die du auch tatsächlich benötigst (und die "FrozenMeal.h" benötigt z.B. keine Informationen aus der "Microwave.h", also kannst du den Include auch weglassen - dadurch löst du nebenbei auch die #include-Kette auf, die zu den C1014-Fehlern geführt hat).

    Und setPeriod(), setPower() und getPower() sind immer noch nicht als Methoden der Microwave-Klasse definiert 😉



  • Hm.. wenn ich die Microwave.h aus der FrozenMEal.h rausnehme bekomme ich folgende Fehler:

    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(11) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'name'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(11) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(11) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(17) : error C2146: Syntaxfehler: Fehlendes ')' vor Bezeichner 'name'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(17) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'name'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(17) : error C2460: 'FrozenMeal::string': Verwendet gerade definiertes 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(9): Siehe Deklaration von 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(17) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(17) : error C2062: 'int'-Typ unerwartet
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(20) : error C2327: 'FrozenMeal::string': Ist kein Typname, nicht statisch und kein Enumerator
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(20) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'getName'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(20) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(20) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(20) : warning C4183: 'getName': Rückgabetyp fehlt; Memberfunktion, die 'int' zurückgibt wird angenommen
    c:\programme\microsoft visual studio 8\vc\include\iostream(12) : error C2143: Syntaxfehler: Es fehlt ';' vor 'namespace'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(9) : error C2011: 'FrozenMeal': 'class' Typneudefinition
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(9): Siehe Deklaration von 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(9) : error C2027: Verwendung des undefinierten Typs "FrozenMeal"
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(9): Siehe Deklaration von 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(9) : error C2146: Syntaxfehler: Fehlendes ')' vor Bezeichner 'aName'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(9) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'aName'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(9) : error C2079: 'string' verwendet undefiniertes class 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(9) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(9) : error C2062: 'int'-Typ unerwartet
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(9) : error C2059: Syntaxfehler: ')'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(10) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(10) : error C2447: '{': Funktionskopf fehlt - Parameterliste im alten Stil?
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(17) : error C2027: Verwendung des undefinierten Typs "FrozenMeal"
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(9): Siehe Deklaration von 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(17) : error C2062: 'void'-Typ unerwartet
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(18) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(18) : error C2447: '{': Funktionskopf fehlt - Parameterliste im alten Stil?
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(21) : error C2027: Verwendung des undefinierten Typs "FrozenMeal"
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(9): Siehe Deklaration von 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(23) : error C2065: 'temperature': nichtdeklarierter Bezeichner
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(26) : error C2027: Verwendung des undefinierten Typs "FrozenMeal"
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(9): Siehe Deklaration von 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(26) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'getName'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(26) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(26) : error C2086: 'int string': Neudefinition
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(9): Siehe Deklaration von 'string'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(27) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(28) : error C2065: 'name': nichtdeklarierter Bezeichner
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(31) : error C2027: Verwendung des undefinierten Typs "FrozenMeal"
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(9): Siehe Deklaration von 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(33) : error C2065: 'volume': nichtdeklarierter Bezeichner
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(36) : error C2027: Verwendung des undefinierten Typs "FrozenMeal"
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(9): Siehe Deklaration von 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(38) : error C2065: 'coefficient': nichtdeklarierter Bezeichner
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(41) : error C2027: Verwendung des undefinierten Typs "FrozenMeal"
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(9): Siehe Deklaration von 'FrozenMeal'
    main.cpp
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(11) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'name'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(11) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(11) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(17) : error C2146: Syntaxfehler: Fehlendes ')' vor Bezeichner 'name'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(17) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'name'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(17) : error C2460: 'FrozenMeal::string': Verwendet gerade definiertes 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(9): Siehe Deklaration von 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(17) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(17) : error C2062: 'int'-Typ unerwartet
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(20) : error C2327: 'FrozenMeal::string': Ist kein Typname, nicht statisch und kein Enumerator
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(20) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'getName'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(20) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(20) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(20) : warning C4183: 'getName': Rückgabetyp fehlt; Memberfunktion, die 'int' zurückgibt wird angenommen
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\microwave.h(11) : error C2236: "class" "Microwave" unerwartet. Wurde ein ";" vergessen?
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\microwave.h(11) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\microwave.h(11) : error C2447: '{': Funktionskopf fehlt - Parameterliste im alten Stil?
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(9) : error C2011: 'FrozenMeal': 'class' Typneudefinition
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(9): Siehe Deklaration von 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\main.cpp(18) : fatal error C1004: Unerwartetes Dateiende gefunden.
    Microwave.cpp
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(11) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'name'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(11) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(11) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(17) : error C2146: Syntaxfehler: Fehlendes ')' vor Bezeichner 'name'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(17) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'name'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(17) : error C2460: 'FrozenMeal::string': Verwendet gerade definiertes 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(9): Siehe Deklaration von 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(17) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(17) : error C2062: 'int'-Typ unerwartet
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(20) : error C2327: 'FrozenMeal::string': Ist kein Typname, nicht statisch und kein Enumerator
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(20) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'getName'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(20) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(20) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(20) : warning C4183: 'getName': Rückgabetyp fehlt; Memberfunktion, die 'int' zurückgibt wird angenommen
    c:\programme\microsoft visual studio 8\vc\include\iostream(12) : error C2143: Syntaxfehler: Es fehlt ';' vor 'namespace'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(9) : error C2011: 'FrozenMeal': 'class' Typneudefinition
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(9): Siehe Deklaration von 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\microwave.cpp(9) : error C2653: 'Microwave': Keine Klasse oder Namespace
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\microwave.cpp(10) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\microwave.cpp(11) : error C2065: 'volume': nichtdeklarierter Bezeichner
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\microwave.cpp(12) : warning C4508: 'Microwave': Funktion sollte einen Wert zurückgeben; Ergebnistyp 'void' angenommen
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\microwave.cpp(14) : error C2653: 'Microwave': Keine Klasse oder Namespace
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\microwave.cpp(14) : fatal error C1903: Weiterverarbeitung nach vorherigem Fehler nicht möglich; Kompilierung wird abgebrochen.
    Code wird generiert...
    Das Buildprotokoll wurde unter "file://d:\Eigene Dateien\Visual Studio 2005\Projects\Programmieren1_Praktikum5\microwave\Debug\BuildLog.htm" gespeichert.
    microwave - 76 Fehler, 4 Warnung(en)
    ========== Alles neu erstellen: 0 erfolgreich, Fehler bei 1, 0 übersprungen ==========



  • Du hast vier Dateien:

    Microwave.h

    Microwave.cpp

    FrozenMeal.h

    FrozenMeal.cpp

    mit folgenden Abhängigkeiten:

    Microwave.h
    -braucht Frozenmeal.h -> #include "frozenmeal.h"

    Microwave.cpp
    -braucht Microwave.h und Frozenmeal.h (wird in microwave.h bereits inkludiert) -> #include "microwave.h"

    Frozenmeal.h
    -braucht nichts

    Frozenmeal.cpp
    -braucht die Frozenmeal.h -> #include "frozenmeal.h"

    Und in der main brauchst du dann nur noch ein #include "microwave.h"

    Edit:

    Und du solltest include-guards verwenden (siehe c++-faq Beitrag), aber das hebst du dir für später auf, als erstes machst du mal deine Aufgabe fertig.



  • Bist du sicher, daß du nur die eine Zeile rausgeschmissen hast? Die Fehler sehen nämlich ganz danach aus, daß du entweder die <string> nicht mehr eingebunden oder das "using namespace std;" unterschlagen hast.



  • Hab alles nochmal überprüft. Fehler:

    c:\programme\microsoft visual studio 8\vc\include\iostream(12) : error C2143: Syntaxfehler: Es fehlt ';' vor 'namespace'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(10) : error C2011: 'FrozenMeal': 'class' Typneudefinition
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(10): Siehe Deklaration von 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(11) : error C2027: Verwendung des undefinierten Typs "FrozenMeal"
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(10): Siehe Deklaration von 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(11) : error C2146: Syntaxfehler: Fehlendes ')' vor Bezeichner 'aName'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(11) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'aName'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(11) : error C2079: 'string' verwendet undefiniertes class 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(11) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(11) : error C2062: 'int'-Typ unerwartet
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(11) : error C2059: Syntaxfehler: ')'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(12) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(12) : error C2447: '{': Funktionskopf fehlt - Parameterliste im alten Stil?
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(19) : error C2027: Verwendung des undefinierten Typs "FrozenMeal"
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(10): Siehe Deklaration von 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(19) : error C2062: 'void'-Typ unerwartet
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(20) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(20) : error C2447: '{': Funktionskopf fehlt - Parameterliste im alten Stil?
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(25) : error C2027: Verwendung des undefinierten Typs "FrozenMeal"
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(10): Siehe Deklaration von 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(27) : error C2065: 'temperature': nichtdeklarierter Bezeichner
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(30) : error C2872: 'string': Mehrdeutiges Symbol
    kann 'd:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(11) sein: int string'
    oder "c:\programme\microsoft visual studio 8\vc\include\xstring(2090) : std::string"
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(30) : error C2027: Verwendung des undefinierten Typs "FrozenMeal"
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(10): Siehe Deklaration von 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(30) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'getName'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(30) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(30) : error C2086: 'int string': Neudefinition
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(11): Siehe Deklaration von 'string'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(31) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(32) : error C2065: 'name': nichtdeklarierter Bezeichner
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(35) : error C2027: Verwendung des undefinierten Typs "FrozenMeal"
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(10): Siehe Deklaration von 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(37) : error C2065: 'volume': nichtdeklarierter Bezeichner
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(40) : error C2027: Verwendung des undefinierten Typs "FrozenMeal"
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(10): Siehe Deklaration von 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(42) : error C2065: 'coefficient': nichtdeklarierter Bezeichner
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(45) : error C2027: Verwendung des undefinierten Typs "FrozenMeal"
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(10): Siehe Deklaration von 'FrozenMeal'
    main.cpp
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\microwave.h(9) : error C2143: Syntaxfehler: Es fehlt ';' vor 'using'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(10) : error C2011: 'FrozenMeal': 'class' Typneudefinition
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(10): Siehe Deklaration von 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\main.cpp(15) : error C2079: 'meal' verwendet undefiniertes class 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\main.cpp(15) : error C2078: Zu viele Initialisierungen
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\main.cpp(17) : error C2664: 'Microwave::heatMeal': Konvertierung des Parameters 1 von 'int' in 'FrozenMeal &' nicht möglich
    Microwave.cpp
    c:\programme\microsoft visual studio 8\vc\include\iostream(12) : error C2143: Syntaxfehler: Es fehlt ';' vor 'namespace'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(10) : error C2011: 'FrozenMeal': 'class' Typneudefinition
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(10): Siehe Deklaration von 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\microwave.cpp(22) : error C2143: Syntaxfehler: Es fehlt ';' vor '}'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\microwave.cpp(51) : error C2027: Verwendung des undefinierten Typs "FrozenMeal"
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(10): Siehe Deklaration von 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\microwave.cpp(51) : error C2228: Links von ".changeTemperature" muss sich eine Klasse/Struktur/Union befinden.
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\microwave.cpp(51) : error C2027: Verwendung des undefinierten Typs "FrozenMeal"
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(10): Siehe Deklaration von 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\microwave.cpp(51) : error C2228: Links von ".getTemperature" muss sich eine Klasse/Struktur/Union befinden.
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\microwave.cpp(51) : error C2027: Verwendung des undefinierten Typs "FrozenMeal"
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(10): Siehe Deklaration von 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\microwave.cpp(51) : error C2228: Links von ".getCoefficient" muss sich eine Klasse/Struktur/Union befinden.
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\microwave.cpp(51) : error C2027: Verwendung des undefinierten Typs "FrozenMeal"
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(10): Siehe Deklaration von 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\microwave.cpp(51) : error C2228: Links von ".getVolume" muss sich eine Klasse/Struktur/Union befinden.
    Code wird generiert...
    Das Buildprotokoll wurde unter "file://d:\Eigene Dateien\Visual Studio 2005\Projects\Programmieren1_Praktikum5\microwave\Debug\BuildLog.htm" gespeichert.
    microwave - 45 Fehler, 0 Warnung(en)
    ========== Alles neu erstellen: 0 erfolgreich, Fehler bei 1, 0 übersprungen ==========

    Datien:

    FrozenMeal.h

    #include <string>
    using namespace std;
    
    class FrozenMeal
    {
    private:
    	string name;
    	int volume;
    	double temperature;
    	double coefficient;
    
    public:
    	FrozenMeal(string name, int volume);
    	~FrozenMeal();
    	void changeTemperature(double zuwachs);
    	string getName();
    	int getVolume();
    	double getCoefficient();
    	double getTemperature();
    }
    

    FrozenMeal.cpp

    #include "FrozenMeal.h"
    #include "Microwave.h"
    using namespace std;
    
    FrozenMeal::FrozenMeal(string aName, int aVolume)
    {
    	name = aName;
    	volume = aVolume;
    	temperature = -18;
    	coefficient = 0.24;
    }
    
    FrozenMeal::~FrozenMeal(void)
    {
    	cout << "Das Gericht: " << getName() << "hat eine Temperatur von: " << getTemperature() << endl
    		 << "und ein Volumen von: " << getVolume() << " ccm" << endl;
    }
    
    void FrozenMeal::changeTemperature(double zuwachs)
    {
    	temperature += zuwachs;
    } 
    
    string FrozenMeal::getName()
    {
    	return name;
    }
    
    int FrozenMeal::getVolume()
    {
    	return volume;
    }
    
    double FrozenMeal::getCoefficient()
    {
    	return coefficient;
    }
    
    double FrozenMeal::getTemperature()
    {
    	return temperature;
    }
    

    Microwave.h

    #include <string>
    #include <iostream>
    #include "FrozenMeal.h"
    using namespace std;
    
    class Microwave
    {
    private:
    	int power;		
    	int volume;		
    	double period;
    
    public:
    	Microwave(int volume);
    	Microwave (Microwave&);
    	~Microwave(void);
    	void morePower();
    	void lessPower();
    	void setPeriod(double);
    	void heatMeal(FrozenMeal&);
    	int getPower();
    	double getPeriod();
    };
    

    Microwave.cpp

    #include "FrozenMeal.h"
    #include "Microwave.h"
    #include <iostream>
    using namespace std;
    
    Microwave::Microwave(int aVolume)
    {
    	volume = aVolume;
    }
    
    Microwave::~Microwave(void)
    {
    	cout << "Die Mikrowelle hat eine eingestellte Leistung von: " << getPower() << "W" << endl
    		<< " Die Mikrowelle lief ingesamt: " << getPeriod() << " Sekunden." << endl
    
    }
    
    void Microwave::morePower()
    {
    	if (power <=800)				//wenn Leistung nicht groesser als 800 Watt 
    		{							// erhöhe um 200. 800 + 200 = 1000 = max 
    			power=power+200;
    		} 
    }
    
    void Microwave::lessPower()
    {
       power -= 200;					// Leistung wird um 200 verringert
       if (power < 200)					// Wenn Leistung kleiner als 200 wird
          power = 200;					// Leistung auf 200 gesetzt da minimum
    }
    
    void Microwave::setPeriod(double aPeriod)
    {
    	period= aPeriod;
    
    }
    
    void Microwave::heatMeal(FrozenMeal& meal)
    {
    	setPeriod(240);
        morePower();
    
    	meal.changeTemperature(meal.getTemperature() +  meal.getCoefficient()* getPower()*getPeriod() / meal.getVolume() );
    }
    
    int Microwave::getPower()
    {
    	return power;
    }
    
    double Microwave::getPeriod()
    {
    	return period;
    }
    

    und main.cpp

    #include "Microwave.h"
    #include "FrozenMeal.h"
    #include <iostream>
    using namespace std;
    
    void main()
    {
    	Microwave mv(25);
    	FrozenMeal meal ("Truthahn", 300);
    
    	mv.heatMeal(meal);
    
    }
    


  • c:\programme\microsoft visual studio 8\vc\include\iostream(12) : error C2143: Syntaxfehler: Es fehlt ';' vor 'namespace'

    Du hast das Semikolon am Ende der Klassendeklaration von FrozenMeal vergessen (#include ist eine simple Textersetzung, also beschwert sich der Compiler darüber bei der nächsten Anweisung, die nicht passt - und das ist der Anfang der <iostream>)

    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(10) : error C2011: 'FrozenMeal': 'class' Typneudefinition
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(10): Siehe Deklaration von 'FrozenMeal'

    In der "Microwave.cpp" hast du zwei Versionen der "Frozenmeal.h" eingebunden (einmal direkt, einmal indirekt über die "Microwave.h" - erstere ist überflüssig) und dadurch zwei Definitionen der Klasse FrozenMeal.

    (die optimale Lösung wäre ein Include-Guard in deinen Headern - aber im Moment reicht es wohl, das "#include "FrozenMeal.h"" in der "Microwave.cpp" zu entfernen)

    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(11) : error C2027: Verwendung des undefinierten Typs "FrozenMeal"
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(10): Siehe Deklaration von 'FrozenMeal'

    Das ist eine weitere Ausprägung des Fehlers #1 (vergessenes Semikolen).

    Die übrigen Meldungen dürften Folgefehler dieser beiden Probleme sein.



  • Ich hab das ganze jetzt mal schnell berichtigt, aber die komplette Lösung geb ich dir nicht einfach so.

    Als erstes musst du zwingend meine Inklude-Anweisungen beachten, sonst hast du Mehrfachdefinitionen, da du keine Include-Guards benutzt (du könntest schnell hingehen und in beide Header wieder das #pragma once einfügen, dann hast du das Problem behoben).

    Zweitens musst du in deinem Microwave Konstruktor der Leistung, dem Volumen und der Dauer einen sinnvollen Wert zuweisen.

    zum Beispiel so:

    #include <algorithm> //wird für min und max benötigt
    using namespace std;
    
    Microwave::Microwave(int aPower, int aVolume)
    {
    	power = min( 1000, max( 200, aPower ) );
    	volume = aVolume;
    	period = 1;
    }
    

    Und dann kannst du deine more und less power Funktionen noch verbessern:

    void Microwave::morePower()
    {
    	power = min( 1000, power + 200 );
    }
    
    void Microwave::lessPower()
    {
    	power = max( 200, power - 200 );
    }
    

    Und drittens stimmt der Rest vom Programm her sind nur ein paar Formfehler die hauptsächlich daran liegen, dass du kreuz und quer inkludierst und keine Include-Guards hast.



  • Hallo Cstoll,

    habe nun folgende Fehlermeldung:

    ------ Neues Erstellen gestartet: Projekt: microwave, Konfiguration: Debug Win32 ------
    Die Zwischen- und Ausgabedateien für das Projekt "microwave" mit der Konfiguration "Debug|Win32" werden gelöscht.
    Kompilieren...
    FrozenMeal.cpp
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(10) : error C2011: 'FrozenMeal': 'class' Typneudefinition
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(10): Siehe Deklaration von 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(11) : error C2027: Verwendung des undefinierten Typs "FrozenMeal"
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(10): Siehe Deklaration von 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(11) : error C2146: Syntaxfehler: Fehlendes ')' vor Bezeichner 'aName'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(11) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'aName'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(11) : error C2079: 'string' verwendet undefiniertes class 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(11) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(11) : error C2062: 'int'-Typ unerwartet
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(11) : error C2059: Syntaxfehler: ')'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(12) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(12) : error C2447: '{': Funktionskopf fehlt - Parameterliste im alten Stil?
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(19) : error C2027: Verwendung des undefinierten Typs "FrozenMeal"
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(10): Siehe Deklaration von 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(19) : error C2062: 'void'-Typ unerwartet
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(20) : error C2143: Syntaxfehler: Es fehlt ';' vor '{'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(20) : error C2447: '{': Funktionskopf fehlt - Parameterliste im alten Stil?
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(25) : error C2027: Verwendung des undefinierten Typs "FrozenMeal"
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(10): Siehe Deklaration von 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(27) : error C2065: 'temperature': nichtdeklarierter Bezeichner
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(30) : error C2872: 'string': Mehrdeutiges Symbol
    kann 'd:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(11) sein: int string'
    oder "c:\programme\microsoft visual studio 8\vc\include\xstring(2090) : std::string"
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(30) : error C2027: Verwendung des undefinierten Typs "FrozenMeal"
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(10): Siehe Deklaration von 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(30) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'getName'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(30) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(30) : error C2086: 'int string': Neudefinition
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(11): Siehe Deklaration von 'string'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(31) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(32) : error C2065: 'name': nichtdeklarierter Bezeichner
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(35) : error C2027: Verwendung des undefinierten Typs "FrozenMeal"
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(10): Siehe Deklaration von 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(37) : error C2065: 'volume': nichtdeklarierter Bezeichner
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(40) : error C2027: Verwendung des undefinierten Typs "FrozenMeal"
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(10): Siehe Deklaration von 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(42) : error C2065: 'coefficient': nichtdeklarierter Bezeichner
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.cpp(45) : error C2027: Verwendung des undefinierten Typs "FrozenMeal"
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(10): Siehe Deklaration von 'FrozenMeal'
    main.cpp
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(10) : error C2011: 'FrozenMeal': 'class' Typneudefinition
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\frozenmeal.h(10): Siehe Deklaration von 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\main.cpp(15) : error C2079: 'meal' verwendet undefiniertes class 'FrozenMeal'
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\main.cpp(15) : error C2078: Zu viele Initialisierungen
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\main.cpp(17) : error C2664: 'Microwave::heatMeal': Konvertierung des Parameters 1 von 'int' in 'FrozenMeal &' nicht möglich
    Microwave.cpp
    d:\eigene dateien\visual studio 2005\projects\programmieren1_praktikum5\microwave\microwave.cpp(21) : error C2143: Syntaxfehler: Es fehlt ';' vor '}'
    Code wird generiert...
    Das Buildprotokoll wurde unter "file://d:\Eigene Dateien\Visual Studio 2005\Projects\Programmieren1_Praktikum5\microwave\Debug\BuildLog.htm" gespeichert.
    microwave - 33 Fehler, 0 Warnung(en)
    ========== Alles neu erstellen: 0 erfolgreich, Fehler bei 1, 0 übersprungen ==========

    habe - denke ich - alles netfrent und hinzugefügt, das du meintest.


Anmelden zum Antworten