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_H
    

    und am ende

    #endif
    

    einfü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_H
    

    Ich finde diese Variante übersichtlicher

    #ifndef MY_YOURHEADERNAME_H
    #define MY_YOURHEADERNAME_H
    

    bis bald
    akari


Anmelden zum Antworten