Probleme mit Klassen in seperaten Dateien
-
Hi!
Ich habe mir vorgenommen über die Ferien das Buch "C++ für Spieleprogrammierer" von Heiko Kalista durchzuarbeiten und bin mittlerweile bei Kapitel 7 - Klassen angekommen.
Es sollte eine Klasse in einer seperaten Datei erstellt werden und diese dann auch in der main funktion benutzt werden. Habe versucht das alleine hinzubekommen, aber ich erhielt immer wieder den gleichen Fehler. Habe das mit der Lösung aus dem Buch verglichen und eigentlich alle haargenau abgeschrieben (hatte andere Variablenbezeichnungen etc. ). Doch ich hatte immer noch den gleichen Fehler! und ich weiß nicht woran das liegt
main.cpp
#include <cstdlib> #include <iostream> #include "Raumschiff.hpp" using namespace std; int main() { //Variablen CRaumschiff Schiff1; CRaumschiff Schiff2; //Initialisierung Schiff1.m_Energie = 100; Schiff1.m_Geschwindigkeit = 50; Schiff2.m_Energie = 200; Schiff2.m_Geschwindigkeit = 25; //Ausgabe Schiff1.ZeigeDaten (); cout << endl; Schiff2.ZeigeDaten (); return 0; }Raumschiff.hpp
// Klasse class CRaumschiff { puplic: //membervariablen int m_Energie; int m_Geschwindigkeit; //memberfunktionen void ZeigeDaten (); };Raumschiff.cpp
//Memberfunktion Zeigedaten #include "Raumschiff.hpp" #include <iostream> using namespace std; void CRaumschiff::ZeigeDaten () { cout << "Die aktuelle Energie betraegt :" << m_Energie << endl; cout << "Die aktuelle Geschwindigkeit betraegt :" << m_Geschwindigkeit << endl; }Der Fehler
3 E:\Cplus\Projekte\Klassen\7.2\7.2_private.cpp In file included from 7.2_private.cpp
Das ist in main, zeile 3 bei #include "Raumschiff.hpp"
Habe alle Dateien auch in einen Ordner gepackt.Habe jetzt ne halbe stunde lang nach dem fehler gesucht und ich finde ihn einfach nicht! Vielleicht liegts am compiler (Dev-C++ 4.9.9.2) oder ich bin einfach zu blöd^^
Hoffe ihr könnt mir helfen

Weedjo
-
Wäre fein gewesen, wenn Du die Fehlermeldung selbst auch mitgepostet hättest.
Aber "puplic:" sieht mir ziemlich verdächtig aus; ändere das vielleicht mal auf "public:".

-
#include "Raumschiff.hpp"
- ".hpp"? -> .h
+ puplic bereitet sicher auch Probleme...
Außerdem solltest du in der Header datei ganz am Anfang:
#if !defined(MY_YOURHEADERNAME_H) #define MY_YOURHEADERNAME_Hund am ende
#endifeinfügen!
wobei YOURHEADERNAME natürlich durch den namen deiner datei zu ersetzen ist..EDIT: Too slow...Verdammter Browser..
-
Kuldren schrieb:
- ".hpp"? -> .h
Das ist schon in Ordnung so, ich verfrachte meine C++-Header auch in .hpp-Dateien, machen viele.
-
Oh man... danke jungs! es lag am "public"... Ich bin in englisch eigentlich ganz gut, aber irgendwie war das jetzt auch selten blöd xD
Funktioniert jetzt alles einwandfrei
danke
Weedjo
-
Hallo
Kuldren schrieb:
Außerdem solltest du in der Header datei ganz am Anfang:
#if !defined(MY_YOURHEADERNAME_H) #define MY_YOURHEADERNAME_HIch finde diese Variante übersichtlicher
#ifndef MY_YOURHEADERNAME_H #define MY_YOURHEADERNAME_Hbis bald
akari