Problem bei class



  • Morgen ich hab ein Problem immer wenn ich das Kompiliere bekomme ich die Meldung include Datei zu tief verschachtelt was mach ich da falsch?

    Hauptprogramm:

    #include <iostream>
    #include "File1.h"
    #include "Unit1.cpp"
    
    using namespace std;
    
    class test
    {
     public:
      int ausgabe();
    
    };
    
    int main(int argc, char* argv[])
    {
    
    system("PAUSE");
    }
    

    File1.h

    #include "File1.h"
    using namespace std;
    
    int test::ausgabe();
    {
    
    }
    


  • blup schrieb:

    File1.h

    #include "File1.h"
    

    fällt dir was auf?



  • Weiterhin sollte man auch keine cpps inkludieren. Das hier ist also auch falsch

    #include "Unit1.cpp"
    

    Außerdem hat

    using namespace std;
    

    in einem Header nichts zu suchen.



  • blup schrieb:

    int test::ausgabe();
    {
    
    }
    

    Normalerweise müsste das Semikolon nach ausgabe() auch Probleme machen...



  • Funktioniert noch immer nicht 😞

    Ich bekomm wieder die selbe Meldung wie am Anfang.

    Hauptprogramm

    #include <iostream>
    using namespace std;
    
    #include "File1.h"
    
    class test
    {
     public:
      int ausgabe();
    
    };
    
    int main(int argc, char* argv[])
    {
    
    system("PAUSE");
    }
    

    File1.h

    #include "File1.h"
    
    int test::ausgabe()
    {
    
    }
    


  • Ach mist was falsches eingefügt^^

    File1.h

    #include "Unit1.cpp"
    
    int test::ausgabe()
    {
    
    }
    


  • Codedateien sollte man nicht inkludieren. Außerdem solltest du Include guards verwenden. Siehe auch dein lieblings C++-Buch.



  • blup schrieb:

    ...

    Ich habe mal deinen Code etwas geändert, und mit Anmerkungen versehen:

    // Hauptprogramm
    #include <iostream>
    #include "test.h" // Man sollte Dateien nach ihren Inhalt benennen...
    
    using namespace std; // Bitte nach allen Includes, und nicht im Header
    
    int main() // solange du nicht mit den Argumenten arbeitest, reicht diese Version
    {
        system("PAUSE"); // Achtung: Systemspezifisch
    }
    
    // test.h
    // Includeguards für Header, müssen Projektweit eindeutig sein
    #ifndef TEST__HEADER
    #define TEST__HEADER
    
    class test
    {
      public:
        int ausgabe();
    };
    
    #endif
    
    // test.cpp
    #include "test.h"
    
    int test::ausgabe()
    {
      return 0; // Deine Methode hat einen Rückgabewert, also gib auch was zurück...
    }
    

    cu André


Anmelden zum Antworten