Problem beim Deklarieren einer Instanz in anderer hpp Datei

  • Hi!
    Ich habe folgendes Problem:
    ich benutze Microsoft Visual C++ und ich hab in einer hpp Datei eine globale Struktur erstellt und habe davon in einer anderen hpp Datei eine Instanz erstellt. Die Dateien habe ich in die jeweils andere eingebunden.
    wenn ich das ganze nun kompiliere, bekomme ich folgende Fehler:

    error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'Kolo'
    error C2501: 'S_Plani' : Fehlende Speicherklasse oder Typbezeichner
    fatal error C1004: Unerwartetes Dateiende gefunden

    die Struktur schaut wie folgt aus:

    struct S_Plani
    {
    int Groesse;
    int Gala;
    int Sys;
    int Pos;
    int BebauteFelder;
    int FreieFelder;
    int MaxTemp;
    int Anzahl;
    char Name[20];
    };

    und der Anfang der anderen hpp:

    #ifndef PLANIS_HPP
    #define PLANIS_HPP

    #include <iostream>
    #include "Funktionen.hpp"

    using namespace std;

    S_Plani Kolo;

    void KoloPlani ()
    {
    ...
    }

    #endif PLANIS_HPP


    Ich hoffe ihr könnt mir weiterhelfen!

    MfG DarkXs

  • Dein Problem ist ein typischer Anfängerfehler: diese gegenseitigen include's machen dem Compiler Probleme, und sind häufig ein Designfehler des Programms.

    Um solche Probleme vor zu beugen gibt es einige Regeln die das verhindern (neben einem guten Klassendesign). In der Headerdatei sollten so wenige include's stehen wie möglich (diese verlängern außerdem den Compiliervorgang). Dafür kannst du Vorwärtsdeklarartionen verwenden, wenn dies möglich ist.

    Aber erklären kann man es am besten, wenn du mal beide hpp Dateien postest. Aber bitte in Code Tags. Also [code]...[/ code].