Mikrowelle Praktikum
-
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 nichtsFrozenmeal.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.
-
(kleiner Tip: Ich bin nicht der einzige, der hier mitschreibt - und die Beiträge von 'lolz' solltest du auch bedenken ;))
Ansonsten: Die FrozenMeal.cpp hat das selbe Problem wie oben - sie hat ihren Header doppelt eingebunden. Und da die Mahlzeit nichts über deine Kochbedingungen wissen muß, brauchst du dort das #include "Microwave.h" nicht.
-
Hatte ich gelesen, aber gedacht ich hätte Sie umgesetzt. Abhilfe hat Dein Tipp übrigens keinen gebracht. Wenn ich die FrozenMEal.h aus der FrozenMeal.cpp rausnehme kann er nicht mehr mit FrozenMeal arbeiten, wenn ich es reintue sagt er etwas von neu deklaration.
-
Du sollst ja auch nicht die "FrozenMeal.h" dort rausschmeißen, sondern die "Microwave.h" (die Klasse FrozenMeal benötigt keinen Zugriff auf Microwave, also ist der Header dort sinnlos).
-
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
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 - 5 Fehler, 0 Warnung(en)
========== Alles neu erstellen: 0 erfolgreich, Fehler bei 1, 0 übersprungen ==========FrozenMeal.cpp
#include "FrozenMeal.h" #include <iostream> 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; };
-
Du hast in der main.cpp ein #include "frozenmeal.h" und in der microwave.h, welche du ebenfalls in der main.cpp inkludierst (und laut dem fehler vor der frozenmeal.h).
Schmeiß das raus (in der main.cpp die frozenmeal.h).
-
Edit: läuft nun, aber die Werte erscheinen mir sehr hoch.
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 <iostream> 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(void); void morePower(); void lessPower(); void setPeriod(double); void heatMeal(FrozenMeal&); int getPower(); double getPeriod(); };Microwave.cpp
#include "Microwave.h" #include <iostream> using namespace std; Microwave::Microwave(int aVolume) { volume = aVolume; power = 400; } Microwave::~Microwave(void) { cout << "Die Mikrowelle hat eine eingestellte Leistung von: " << getPower() << "W" << endl << " Die Mikrowelle lief ingesamt: " << getPeriod() << " Sekunden." << endl; system ("pause"); } 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(120); 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" #include <iostream> using namespace std; void main() { Microwave mv(25); FrozenMeal meal ("Truthahn", 300); mv.heatMeal(meal); }
-
Du hast im Microwave Destruktor ein system("pause") wird das aufgerufen oder beendet das Programm sich einfach?
Edit:
Achso und versuch es mal mit vollständigem neu erstellen (ich glaub du benutzt Visual C++ dann einfach unter Erstellen "Projektmappe neu erstellen", je nach Version heißt es evt. etwas anders).