Problem mit Implementierung von Klasse



  • Ich hab eine Klasse definiert:

    // strassenliste.h:
    
    class strassenliste {
        private:
    
            void* erste;
    
        public:
    
            int laden( const char* strassendatei);
            int speichern ( const char* strassendatei );
            int* lesen ( const char* strasse );
            void schreiben ( const char* strasse, int* werte );
    
    };
    
    #define MAX_WERTE 9
    

    Und jetzt die CPP-Datei:

    // strassenliste.cpp:
    
    #include "strassenliste.h"
    
    struct strasse {
        struct strasse*;
        char* strassenname;
        int werte[MAX_WERTE];
    }
    
    int strassenliste::laden ( const char* strassendatei )
    {
    }
    
    int strassenliste::speichern ( const char* strassendatei )
    {
    }
    
    int* strassenliste::lesen ( const char* strasse )
    {
    }
    
    void strassenliste::schreiben ( const char* strasse, int* werte )
    {
    }
    

    warum sagt der beim uebersetzten immer:

    c:\program files\microsoft visual studio\myprojects\monopoly_edit\strassenliste.cpp(24) : fatal error C1010: unexpected end of file while looking for precompiled header directive

    gut. ich kenn mich leider noch nicht so gut mit klassen aus...



  • Hinter struct muss wie bei class ein Semikolon.



  • und du must die stdafx.h einbinden,
    Oder vorkompilierte Headerdateien bei der Datei abschalten.
    Geht unter Projekt-> Einstellungen -> Tab C/C++ -> Vorkompilierte Headerdatei auswählen aus der Listbox,
    und im Tree die Datei auswählen.

    devil



  • Jetzt sieht meine CPP-Datei so aus:

    #include "strassenliste.h"
    #include "StdAfx.h"
    
    struct strasse {
        struct strasse*;
        char* strassenname;
        int werte[MAX_WERTE];
    };
    
    int strassenliste::laden ( const char* strassendatei )
    {
    }
    
    int strassenliste::speichern ( const char* strassendatei )
    {
    }
    
    int* strassenliste::lesen ( const char* strasse )
    {
    }
    
    void strassenliste::schreiben ( const char* strasse, int* werte )
    {
    }
    

    Jetzt gibt aber folgende Fehler:

    C:\Program Files\Microsoft Visual Studio\MyProjects\monopoly_edit\strassenliste.cpp(5) : error C2059: syntax error : ';'
    C:\Program Files\Microsoft Visual Studio\MyProjects\monopoly_edit\strassenliste.cpp(5) : error C2238: unexpected token(s) preceding ';'
    C:\Program Files\Microsoft Visual Studio\MyProjects\monopoly_edit\strassenliste.cpp(7) : error C2065: 'MAX_WERTE' : undeclared identifier
    C:\Program Files\Microsoft Visual Studio\MyProjects\monopoly_edit\strassenliste.cpp(7) : error C2057: expected constant expression
    C:\Program Files\Microsoft Visual Studio\MyProjects\monopoly_edit\strassenliste.cpp(7) : warning C4200: nonstandard extension used : zero-sized array in struct/union
    C:\Program Files\Microsoft Visual Studio\MyProjects\monopoly_edit\strassenliste.cpp(10) : error C2653: 'strassenliste' : is not a class or namespace name
    C:\Program Files\Microsoft Visual Studio\MyProjects\monopoly_edit\strassenliste.cpp(14) : error C2653: 'strassenliste' : is not a class or namespace name
    C:\Program Files\Microsoft Visual Studio\MyProjects\monopoly_edit\strassenliste.cpp(18) : error C2653: 'strassenliste' : is not a class or namespace name
    C:\Program Files\Microsoft Visual Studio\MyProjects\monopoly_edit\strassenliste.cpp(22) : error C2653: 'strassenliste' : is not a class or namespace name

    Aber das ganze wird in einer anderen datei verwendet. und da ist die stdafx.h schon eingebunden...

    andere frage. wie schalte ich das aus. ich hab die engl. version. ich hab aus der liste prekompiled header ausgewaehlt. wenn ich jetzt aber auf der linken seite die datei auswaehle, komme ich woanders hin...



  • struct strasse*;

    was willst du denn damit ausdruecken?

    int*;
    geht ja auch nicht...



  • ok. jetzt macht nurnoch int* probleme.
    wie geht es, dass ich ein ganzes array von ints zurueckgebe?


Anmelden zum Antworten