Símbolo externo no resuelto en miembros de clase estática

En pocas palabras:

Tengo una clase que consiste principalmente en miembros públicos estáticos, por lo que puedo agrupar funciones similares que aún deben llamarse desde otras clases / funciones.

De todos modos, he definido dos variables estáticas sin signo en el ámbito público de mi clase, cuando intento modificar estos valores en el constructor de la misma clase, aparece un error de "símbolo externo sin resolver" en la compilación.

class test 
{
public:
    static unsigned char X;
    static unsigned char Y;

    ...

    test();
};

test::test() 
{
    X = 1;
    Y = 2;
}

Soy nuevo en C ++, así que sé fácil. ¿Por qué no puedo hacer esto?

Respuestas a la pregunta(4)

Su respuesta a la pregunta