LNK2001: Problem ze statycznymi składowymi klasy

0

(VS2017)

Posiadam taką klasę:

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.

1
#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;
}

0

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

2

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

0
class Klasa
{
public:
    inline static bool isInitialized(bool setInit=false)
    {
        static bool initialized=false;
        if(setInit) initialized=true;
        return initialized;
    }
};

1 użytkowników online, w tym zalogowanych: 0, gości: 1