structs



  • Hallo !

    Ih habe ein Problem mit structs .
    Wenn ich den folgenden Code ausführen möchte :

    #include <windows.h>
    
    struct gehaltsdaten {
    	double grundgehalt;
    	double monatsbonus;
    	double weihnachtsgeld;
    };
    
    struct gehaltsdaten petersgehalt;
    petersgehalt.grundgehalt = 1000;
    petersgehalt.monatsbonus = 0;
    petersgehalt.weihnachtsgeld = 100;
    
    int WINAPI WinMain (HINSTANCE HInstance, HINSTANCE hPrevInstance,
    					LPSTR szCmdLine, int iCmdShow){
    	MessageBox( NULL, "Hat geklappt !", "Status:", MB_OK);
    
    	return 0;
    }
    

    kommen folgende Meldungen bei VC++ .NET 2003 Std. :

    ------ Erstellen gestartet: Projekt: test-struct, Konfiguration: Debug Win32 ------
    
    Kompilieren...
    main.cpp
    d:\Workspace\MVC++\test-struct\main.cpp(13) : error C2143: Syntaxfehler: Es fehlt ';' vor '.'
    d:\Workspace\MVC++\test-struct\main.cpp(13) : error C2501: 'petersgehalt': Fehlende Speicherklasse oder Typspezifizierer
    d:\Workspace\MVC++\test-struct\main.cpp(13) : error C2371: 'petersgehalt': Neudefinition; unterschiedliche Basistypen
            d:\Workspace\MVC++\test-struct\main.cpp(11): Siehe Deklaration von 'petersgehalt'
    d:\Workspace\MVC++\test-struct\main.cpp(14) : error C2143: Syntaxfehler: Es fehlt ';' vor '.'
    d:\Workspace\MVC++\test-struct\main.cpp(14) : error C2501: 'petersgehalt': Fehlende Speicherklasse oder Typspezifizierer
    d:\Workspace\MVC++\test-struct\main.cpp(14) : error C2371: 'petersgehalt': Neudefinition; unterschiedliche Basistypen
            d:\Workspace\MVC++\test-struct\main.cpp(11): Siehe Deklaration von 'petersgehalt'
    d:\Workspace\MVC++\test-struct\main.cpp(15) : error C2143: Syntaxfehler: Es fehlt ';' vor '.'
    d:\Workspace\MVC++\test-struct\main.cpp(15) : error C2501: 'petersgehalt': Fehlende Speicherklasse oder Typspezifizierer
    d:\Workspace\MVC++\test-struct\main.cpp(15) : error C2371: 'petersgehalt': Neudefinition; unterschiedliche Basistypen
            d:\Workspace\MVC++\test-struct\main.cpp(11): Siehe Deklaration von 'petersgehalt'
    
    Das Build-Protokoll wurde unter "file://d:\Workspace\Mvc++\test-struct\Debug\BuildLog.htm" gespeichert.
    test-struct - 9 Fehler, 0 Warnung(en)
    
    ---------------------- Fertig ----------------------
    
        Erstellen: 0 erfolgreich, 1 fehlgeschlagen, 0 übersprungen
    

    Wo liegt mein Fehler ?

    Ich währe dankbar wenn ihr mir helfen würdet .



  • petersgehalt.grundgehalt = 1000; 
    petersgehalt.monatsbonus = 0; 
    petersgehalt.weihnachtsgeld = 100;
    

    Das sind Anweisungen, und die sind in C++ nur innerhalb von Funktionen und Memberfunktionen erlaubt, nicht aber irgendwo zwischen den Funktionen. Du willst wahrscheinlich sowas machen:

    gehaltsdaten petersgehalt = { 1000, 0, 100 };
    

    Noch besser wär es natürlich, du würdest auf globale Variablen verzichten. Sprich: Die Definition und Zuweisung von petersgehalt in eine Funktion (WinMain) verlagern.

    Was auch nicht schlecht wär: Als erstes Standard-C++ lernen, keine Windows-API.


Anmelden zum Antworten