Почему статическое поле класса работает не так, как ожидается?
есть следующий код:
#include <iostream>
#include <string>
using namespace std;
class A {
public:
string name = "A class";
A(string name) : name(name) {}
};
class Test {
public:
static A* classes[3];
static void init()
{
Test::classes[0] = new A("1");
Test::classes[1] = new A("2");
Test::classes[2] = new A("3");
}
};
int main()
{
Test::init();
cout << Test::classes[1]->name << endl;
return 0;
}
При его компиляции выпадают ошибки вроде undefined referense to Test::classes. С чем это связано, это какое-то свойство статического поля?