The only way to explicitly initialize a data member is in the constructor initialization list. Once you are in the body of the constructor, the member has been initialized, and all you can do is modify it. In your case, since you are not doing this, the data member would bet implicitly default constructed, but A
does not have a default constructor.
You need to use the appropriate constructor in the constructor initialization list:
B(A& x) : a(x)
{
}