C++自定义类中数组的初始化有关问题

C++自定义类中数组的初始化问题
刚接触C++,今天遇到个数组声名和初始化的问题,一直过不去,我简单叙述下

A.h 文件
class A
{
  private:
  const int a[3];
}

A.cpp 文件

 A::a[3]={1,2,3}; //在这里一直报错error C2761: “const int A::a[3]”: 不允许成员函数重新声明


如果改成在类中初始化,如下

A.h 文件
class A
{
  private:
  static const int a[3]={1,2,3};
}

A.cpp 文件

...


在数组声名和初始化一行就一直报错
error C2059: 语法错误 : “{” 
error C2334: “{”的前面有意外标记;跳过明显的函数体 


不知道是哪里的问题,或者自己写类的话要怎样定义和初始化数组?请各位高手给解答下

------解决方案--------------------
#include<iostream>
using namespace std;



class Class
{
public:
static const int a[3];
}; 
const int Class::a[3] = {1, 2, 3};

int main()
{
Class clss;

cout<<Class::a[0]<<endl;
return 0;
}

------解决方案--------------------
记住静态成员这样初始化:
C/C++ code
class A
{
public:
   static const int a[3];
};

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

------解决方案--------------------
改用vector:

C/C++ code
class A
{
public:
    A(int * values, int size): a(values, values+size)
    {    
    }
private:
    std::vector<int const> a;
};

int some[] = {1,2,3};
A a(some,3);