Datei kann nicht "includeed" werden! Compiler stürtz ab
-
@Krux: Begründung?
@greece57: Solange Krux keine sinnvolle Begründung gibt, warum du nicht Microsoft Visual C++ 2005 Express Edition nutzen solltest, würde ich dir empfehlen umzusteigen!
-
Danke (:
Ne ich wills halt combilen! u. das geht mit der authoren version
-
-
danke!
Warum geht das nicht?:case 1: { CGame Game; Game.aufgehts(); CSpaceship Spaceship; Spaceship show_energie(); } break;Ich will die Funktion show_energie aufrufen wie mach ich das?
-
Spaceship.show_energie();
-
geht nicht
Spaceship.show_energie();
-
in deinem Code auf der ersten Seite gibt es auch keine Funktion "show_energie()", du musst sie schon deklarieren und implementieren.
FEHLERMELDUNGEN MITPOSTEN
"GEHT NICHT" IST KEINE FEHLERMELDUNG
-
doch ich hab ja den von Evil korrigierten code genommen!!
Fehlermeldung kommt gleich
-
So ich hab die Fehler jetzt bereinigt aber wie ist es so schön?
Genau
Kommt gleich ein neues Problem:
Wie kann ich die VariableRaumschiffauswahlin SpaceShip.h verwenden?
hier ist Game.h:#if !defined GAME_H__INCLUDED #define GAME_H__INCLUDED #if (_MSC_VER > 1000) #pragma once #endif // _MSC_VER > 1000 #include <iostream> #include <string> class Game { public: char Raumschiffauswahl; void aufgehts () { std::cout << "Waehlen sie die Daten fuer ihr Raumschiff" << std::endl; std::cout << "Fuer ein schnelles Raumschiff druecken sie (s)chnell" << std::endl; std::cout << "Fuer ein grosses Raumschiff druecken sie (b)ig" << std::endl; do { if (Raumschiffauswahl != 's' && Raumschiffauswahl != 'S' && Raumschiffauswahl != 'B' && Raumschiffauswahl != 'b') std::cin >> Raumschiffauswahl; if (Raumschiffauswahl != 's' && Raumschiffauswahl != 'S' && Raumschiffauswahl != 'B' && Raumschiffauswahl != 'b') std::cout << "Falsche eingabe" << std::endl; }while (Raumschiffauswahl != 's' && Raumschiffauswahl != 'S' && Raumschiffauswahl != 'B' && Raumschiffauswahl != 'b'); } }; #endif // GAME_H__INCLUDEDund hier ist SpaceShip.h:
#if !defined SPACE_SHIP_H__INCLUDED #define SPACE_SHIP_H__INCLUDED #if (_MSC_VER > 1000) #pragma once #endif // _MSC_VER > 1000 #include <iostream> #include <string> #include "game.h" // using namespace std; niemals in einem HEADER! class SpaceShip { public: SpaceShip() : m_energie(0), m_speed(0) {} private: unsigned short m_energie; unsigned int m_speed; std::string m_name; Game *pRaumschiffauswahl; public: void UpdateSpaceShip () { if (*pRaumschiffauswahl == 's' || *pRaumschiffauswahl == 'S') { m_energie = 100; m_speed = 500; } else if (*pRaumschiffauswahl == 'b' || *pRaumschiffauswahl == 'B') { m_energie = 500; m_speed = 100; } else std::cout << "Falsche Eingabe" << std::endl; } void show_energie() const { std::cout << "- Energie: " << m_energie << "km/h" << std::endl; } void show_speed() const { std::cout << "- Geschwindigkeit: " << m_speed << std::endl; } void show_data() const { std::cout << "." << m_name << ": " << std::endl; show_energie(); show_speed(); } }; #endif // SPACE_SHIP_H__INCLUDEDHier taucht der Fehler auf:
no match for 'operator==' in ((SpaceShip)this)->SpaceShip::pRaumschiffauswahl == 's'das gleiche für 'S' ; 'b' und 'B'
und wenn ich die Zeile so schreibe was meiner Meinung nach eigentlich kompletter blödsinn ist:
if (SpaceShip::pRaumschiffauswahl == 's' || SpaceShip::pRaumschiffauswahl == 'S')kommt der Fehler
ISO C++ forbids comparison between pointer and integerBitte helft mir
AJA falls ich es so schreibe
char *pRaumschiffauswahl; public: void UpdateSpaceShip () { if (*pRaumschiffauswahl == 's' || *pRaumschiffauswahl == 'S') { m_energie = 100; m_speed = 500; } else if (*pRaumschiffauswahl == 'b' || *pRaumschiffauswahl == 'B') { m_energie = 500; m_speed = 100; } else std::cout << "Falsche Eingabe" << std::endl; }geht es zwar aber er geht in die else schleife:
std::cout << "Falsche Eingabe" << std::cout;
-
Krux schrieb:
ne ich bin dagegen (siehe meine Signatur)
Wenn Du es denn wenigstens endlich mal korrekt schreiben würdest.
