I want to have an instance of a class used within its own class definition. Such as:

class A{
private:
A a;

public:
A GetA(){return a;}
};

This is a simple thing to do in java with its mighty multipass compiling, but how could I achieve this in C++?