extern



  • hallo, hab ein problem mit extern! wenn ich die var bool var = true; in der client.cpp deklariere dann funzt es, aber wenn ich die bool var = true; in der client.h definiere dann kommt ein error, warum eigentlich??

    cu

    client.h:
    --------------------------------------
    #ifdef client_h
    #define client_h
    
    // bool var = true;
    
    class client
    {
      public:
          client();
    };
    
    #endif
    
    client.cpp:
    -------------------------------
    #include "client.h"
    
    bool var = true;
    
    client::client()
    {
    }
    
    main.cpp:
    --------------------------------------
    #include "client.h"
    
    extern bool var;
    
    int main()
    {
       client client();
    
       usw
    }
    


  • Weil sie nachher in beiden Modulen definiert ist und der Linker nicht weiß, welche er nehmen soll. Du solltest sie in der client.h deklarieren und in der client.cpp definieren:

    // client.h
    extern bool var;
    
    // client.cpp
    bool var = true;
    

    ...wobei ich generell von der Benutzung globaler Variablen abraten würde.



  • ah dann kann ich sie in der main.cpp verwenden....ok thx
    ja ich weiß, hab mich nur mal gewundert;-)

    cu


Anmelden zum Antworten