[BCB] Problem ze "static vector<TPoint>" !

0

[BCB] Problem ze "static vector<TPoint>" !

Witam !

class Trasa {
  private:
    static vector<TPoint>  listaMiast; // TU TKWI PROBLEM !!!
    vector<int> trasa;  
  public:
    static bool wczytajMiasta(char* nazwaPliku);
};

__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    randomize();
    Trasa::wczytajMiasta("miasta");
}

W BCB 6.0 podczas kompilacji otrzymuję błąd:
[Linker Error] Unresolved external 'Trasa::listaMiast' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\TSP-ANW\UMAIN.OBJ

Jeśli usunę slowo "static" przed wektorem (i wykomentuje linijkę z odwolaniem do tego wektora w funkcji statyczenj wczytajMiasta) to kompilacja
przebiega prawidłowo !

O co w tym chodzi ? Dlaczego nie mogę utworzyć statycznego wektora a ze zwykłym działa ???? Może wystarczy zmienić ustawienia kompilatora ?

0

zmalazlem rozwiazanie:
http://www.velocityreviews.com/forums/t287673-unresolved-external-symbol-linker-error-with-a-vector-which-is-a-static-member-variable.html

czyli powinienem dodać poza definicją klasy linijke:
vector<TPoint> Trasa::listaMiast;

0

tak, poniewaz zmienne statyczne sa tak na prawde globalne, i musza jednak gdzies fizycznie istniec. ta brakujaca linijka wlasnie temu sluzy.

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