I am skimming through an open source project and I encountered a c++ construct which I can't quite figure out. Basically the class hierarchy is the following:
class A
{
A();
~A();
...
};
class A::A_Impl
{
A_Impl()
...
};
In the class definition of A_Impl, what does A::A_Impl imply? Am I defining my class A_Impl within the namespace of A? Does this mean the I have access to the members such as in a friend class? It this equivalent to defining the class A_Impl within class A? A_Impl is not deriving from A...
It would be great is someone could explain this pattern to me and in which cases it is used.