В вашем заголовочном файле вы объявили вектор.Этот вектор имеет ключевое слово static
, поэтому каждый экземпляр класса Foo
будет использовать этот единственный и единственный вектор.
Вам также необходимо определить вектор.Вы не можете сделать это вне класса, так как это приведет к ошибке компилятора.Таким образом, в исходном файле вы написали:
vector<Player> Foo::PLAYERS;
, что является определением .
Я бы не сказал, что это похоже на конструктор, носкорее как, потому что может быть только один экземпляр вашего вектора (таким образом, вы не можете иметь его в конструкторе Foo
).
Мне нравится думать, что это случай переменной, объявленной как extern
вфайл заголовка, если это поможет.