Почему статическое поле класса работает не так, как ожидается?

есть следующий код:

#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. С чем это связано, это какое-то свойство статического поля?


Ответы (0 шт):