Statyczne elementy klasy w pliku nagłówkowym
Ostatnio zmodyfikowano 2011-02-17 22:14
absflg Temat założony przez niniejszego użytkownika |
Statyczne elementy klasy w pliku nagłówkowym » 2011-02-17 16:33:48 W jednym pliku mam klasę: class multib { static char index; };
char multib::index = 0;
a w pliku nagłówkowym: class multib { static char index; };
extern char multibool::index;
Z żadną z linijek //1 i //2 nie działa, z obydwiema tak samo. Wyświetla zawsze komunikat: multiple definition of `multibool::index' first defined here ld returned 1 exit status
przy kompilacji kodu z załączonym nagłówkiem. Co robić? |
|
malan |
» 2011-02-17 16:38:26 class multib { static char index; };
? |
|
absflg Temat założony przez niniejszego użytkownika |
» 2011-02-17 21:25:47 [Linker error] undefined reference to `multib::index' Wyświetlane tyle razy, ile było użyte 'index' w pliku z definicją klasy. |
|
malan |
» 2011-02-17 21:54:58 #include <iostream> #include "wtf.h"
int main() { Wtf wtf; std::cout << wtf.get(); }
#ifndef WTF_H #define WTF_G
class Wtf { public: char get() const; static char c; };
#endif
#include "wtf.h"
char Wtf::c = '0';
char Wtf::get() const { return c; }
Log kompilacji: 1>------ Rebuild All started: Project: 3729, Configuration: Debug Win32 ------ 1> wtf.cpp 1> main.cpp 1> Generating Code... 1> 3729.vcxproj -> ...\Visual Studio 2010\Projects\3729\Debug\3729.exe ========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ========== Output: 0 |
|
absflg Temat założony przez niniejszego użytkownika |
» 2011-02-17 22:14:31 Działa jak powinno. Dziękuję. |
|
« 1 » |