variable de clase de matriz estática "definición múltiple" C ++

Estoy escribiendo algún código donde necesito tener una variable de clase que sea una matriz int estática. Entiendo que puedo hacer esto con algo como esto en el archivo de encabezado, A.h:

#ifndef A_H_
#define A_H_

class A
{
public:
  static const int a[];
};

const int A::a[] = {1,2};

#endif

Esto funciona bien si luego incluyo este encabezado en solo otro archivo, algo como lo siguiente, main.cpp:

#include "A.h"

#include <iostream>
using namespace std;

int main()
{

  A myA;  
  cout << "0: " << myA.a[0] << endl;
  cout << "1: " << myA.a[1] << endl;
}

Pero supongamos que necesito que mi clase A sea un poco más complicada, y también quiero tener un archivo A.cpp. Mantendré mi archivo main.cpp igual, pero luego cambiaré A.h de la siguiente manera (acabo de agregar una función, printA):

#ifndef A_H_
#define A_H_

class A
{
public:
  void printA() const;
  static const int a[];
};

const int A::a[] = {1,2};

#endif

Y luego en el archivo A.cpp:

#include "A.h"

#include <iostream>
using namespace std;

void A::printA() const
{

  cout << "Printing in A.cpp." << endl;
  cout << "A.0: " << a[0] << endl;
  cout << "A.1: " << a[1] << endl;

}

Compilar A.o con gcc -o A.o -c A.cpp está bien. Pero al vincular esto al compilar main.cpp (gcc -o atest main.cpp A.o) falla con "definición múltiple de` A :: a '".

He estado buscando en Internet soluciones y encontré personas que tienen variables declaradas en sus encabezados que obtienen el error de "definición múltiple" cuando incluyen el encabezado en varios lugares, y la solución parece ser declarar la variable extern en el encabezado, luego defínalo en un solo archivo fuente (sin encabezado). Pero no puedo declarar una variable de clase tanto estática como externa, ¿verdad? Si lo intento, o si simplemente lo declaro externo, recibo una advertencia acerca de que la variable no es estática (también un error de "especificadores en conflicto" cuando intento ambos).

Entonces, mi pregunta: ¿es posible tener variables de clase de matriz estática en el caso de que el archivo de encabezado deba incluirse en más de un archivo fuente? ¿Si es así, cómo?

Respuestas a la pregunta(2)

Su respuesta a la pregunta