Here is a simplified code piece of mine:


class A
{
A()
{
cout << "ccc\n";
}
~A()
{
}
public:
static A *GetA(void)
{
static A a;
return &a;
}
};

int main()
{
A *b = A::GetA();
return 0;
}

It doesn't compile compaining
error C2248: 'A::~A' : cannot access private member declared in class 'A'

My mind doesn't work any more. Could someone kindly point out my problem? Thanks.