mehrere Dateien, eine Variable.



  • Hallo,
    Ich bin kein allzu wissensreicher C++-Programmierer und habe mich neulich erst mit objektorientierter Programmierung bekannt gemacht. Also erwartet bitte nicht dass ich eure Antworten mit großer leichtigkeit verstehen werde. 🙂

    Augenblicklich habe ich an einem kleinem Projekt ein Problem. Undswar wollte ich in mehreren .cpp dateien eine variable verwenden die in beiden Dateien denselben wert hat.
    (Ich verwende übrigens Visual C++ 2005 Express Edition)
    Ich ließ mir soetwas einfallen:

    //abc.h
    #ifndef ABC_H
    #define ABC_H
    extern int varx;
    #endif
    
    //abc.cpp
    #include "abc.h"
    int varx;
    
    //anderedatei.cpp
    #include "abc.h"
    varx = 20;
    

    Beim builden des Projektes bekomme ich allerdings folgenden error:

    anderedatei.cpp(2) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    

    Ich habe verschiedenes versucht bin aber auf kein Ergebnis gekommen, ich kann jede Hilfe gebrauchen.(Soweit ich weiß hat der Error etwas damit zutun dass ich VC++ 2005 verwende)
    Danke schon im vorraus! 🙂



  • Auf globaler Ebene erwartet er Compiler nur Definitionen oder Deklarationen, keine freistehenden Anweisungen. Die Zuweisung varx=20; ist eine Anweisung und ist nur im Inneren einer Funktion erlaubt.

    PS: Und globale Variablen sind im Allgemeinen wenig beliebt 😉



  • Vielen Dank für die Hilfe!
    Ich dachte zwar dass du meintest ich solle in die header-datei eine funktion deklarieren und dann aus den .cpp-dateien auf diese zugreifen, aber als ich sah dass dies nur mehr Fehler zum vorschein brachte habe ich letzendlich die richtge lösung ausprobiert. Schein augenblicklich zu funtionieren, aber falls weitere Probleme auftauchen werde ich mich melden! 😃



  • Das kann man als Constante über ein Enum lösen.
    Alternativ ein Objekt einer Klasse erstellen und einen Zeiger darauf.



  • Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum C++ (auch C++0x) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten