LNK2001: Problem ze statycznymi składowymi klasy

LNK2001: Problem ze statycznymi składowymi klasy
Kamil B
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:80
0

(VS2017)

Posiadam taką klasę:

Kopiuj
class Klasa
{
private:
    static bool initialized;
public:
    inlline static bool isInitialized() {return initialized;}
};

Teraz, gdziekolwiek wywołam metodę isInitialized(), pojawia się błąd linkera LNK2001: nierozpoznany symbol zewnętrzny "private: static bool Klasa::initialized" (?initialized@GL@1Dud@@0_NA). O co chodzi??? Czytałem MSDN, ale nic nie pożytecznego nie wyczytałem.

99xmarcin
  • Rejestracja:około 5 lat
  • Ostatnio:5 miesięcy
  • Postów:2420
1
Kopiuj
#include <iostream>


class Klasa
{
private:
    static bool initialized;
public:
    inline static bool isInitialized() {return initialized;}
};

bool Klasa::initialized = false;

using namespace std;

int main()
{
    cout<<"Hello World";

    Klasa::isInitialized();

    return 0;
}


Holy sh*t, with every month serenityos.org gets better & better...
Kamil B
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:80
0

Moja klasa jest w osobnym pliku nagłówkowym. Gdzie mam więc przypisać wartość do zmiennej?

99xmarcin
W pliku CPP związanym z klasą (zawierającym definicje metod).
MarekR22
Moderator C/C++
  • Rejestracja:około 17 lat
  • Ostatnio:9 minut
2

Podzielone na pliki tak jak należy: https://wandbox.org/permlink/qKo6VA3AQKfT7HQL


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.
edytowany 1x, ostatnio: MarekR22
99xmarcin
-std=c++17 is the magic keyword here...
MarekR22
a c++17 ma znaczenie jeśli się użyje inline na statycznym polu https://wandbox.org/permlink/6iobJFSl6DrvQ30t
_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:3 miesiące
0
Kopiuj
class Klasa
{
public:
    inline static bool isInitialized(bool setInit=false)
    {
        static bool initialized=false;
        if(setInit) initialized=true;
        return initialized;
    }
};

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.