[Visual C++] LNK2001
Ostatnio zmodyfikowano 2017-04-22 23:59
Kinexity Temat założony przez niniejszego użytkownika |
[Visual C++] LNK2001 » 2017-04-22 22:27:50 Witam wszystkich! W moim programie występuje błąd kompilacji LNK2001, opierający się o nie rozpoznanie zmiennej statycznej. Prosiłbym o pomoc. Deklaracja z pliku nagłówkowego (podkreślę, że to nie jest cały kod nagłówka): #pragma once class C_Object { public: static unsigned int duration; C_Object(); ~C_Object(); };
Log kompilatora: LNK2001 nierozpoznany symbol zewnętrzny "public: static unsigned int C_Object::duration" (?duration@C_Object@@2IA) C_Object.obj
|
|
Bielan |
» 2017-04-22 22:31:09 Masz deklarację zmiennej, gdzie definicja? |
|
Kinexity Temat założony przez niniejszego użytkownika |
» 2017-04-22 22:44:50 To pytanie zabrzmi głupio: Co rozumiesz przez definicję zmiennej? |
|
jankowalski25 |
» 2017-04-22 23:40:56 Co rozumiesz przez definicję zmiennej? |
Robisz coś takiego, rozumiesz? W przypadku zwykłej zmiennej należy wpisać int a; , ewentualnie od razu można nadać wartość, na przykład int a = 5; . Jeśli chodzi o zmienne statyczne w klasie, to zwykle wystarczy dołożyć odpowiednią przestrzeń nazw (sama nazwa nie wystarczy, bo wyjdzie wtedy zmienna globalna), a całą deklarację definicję można wstawić do pliku źródłowego (razem z definicjami metod). Dopisano:Chyba trochę niejasno napisałem, w kursie jest to lepiej wyjaśnione. Chodzi o to, że sama deklaracja nie wystarczy i jedynie informuje o tym, że chcesz mieć taką zmienną. Musisz jeszcze dopisać definicję, aby można było poprawnie utworzyć obiekt. |
|
karambaHZP |
» 2017-04-22 23:42:29 |
|
Kinexity Temat założony przez niniejszego użytkownika |
» 2017-04-22 23:59:40 Dzięki wszystkim. Już działa. |
|
« 1 » |