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